@@ -167,11 +167,23 @@ static void event_interrupt_poison_consumption_v9(struct kfd_node *dev,
167167 case SOC15_IH_CLIENTID_SE3SH :
168168 case SOC15_IH_CLIENTID_UTCL2 :
169169 block = AMDGPU_RAS_BLOCK__GFX ;
170- if (amdgpu_ip_version (dev -> adev , GC_HWIP , 0 ) == IP_VERSION (9 , 4 , 3 ) ||
171- amdgpu_ip_version (dev -> adev , GC_HWIP , 0 ) == IP_VERSION (9 , 4 , 4 ))
172- reset = AMDGPU_RAS_GPU_RESET_MODE1_RESET ;
173- else
170+ if (amdgpu_ip_version (dev -> adev , GC_HWIP , 0 ) == IP_VERSION (9 , 4 , 3 )) {
171+ /* driver mode-2 for gfx poison is only supported by
172+ * pmfw 0x00557300 and onwards */
173+ if (dev -> adev -> pm .fw_version < 0x00557300 )
174+ reset = AMDGPU_RAS_GPU_RESET_MODE1_RESET ;
175+ else
176+ reset = AMDGPU_RAS_GPU_RESET_MODE2_RESET ;
177+ } else if (amdgpu_ip_version (dev -> adev , GC_HWIP , 0 ) == IP_VERSION (9 , 4 , 4 )) {
178+ /* driver mode-2 for gfx poison is only supported by
179+ * pmfw 0x05550C00 and onwards */
180+ if (dev -> adev -> pm .fw_version < 0x05550C00 )
181+ reset = AMDGPU_RAS_GPU_RESET_MODE1_RESET ;
182+ else
183+ reset = AMDGPU_RAS_GPU_RESET_MODE2_RESET ;
184+ } else {
174185 reset = AMDGPU_RAS_GPU_RESET_MODE2_RESET ;
186+ }
175187 break ;
176188 case SOC15_IH_CLIENTID_VMC :
177189 case SOC15_IH_CLIENTID_VMC1 :
@@ -184,11 +196,23 @@ static void event_interrupt_poison_consumption_v9(struct kfd_node *dev,
184196 case SOC15_IH_CLIENTID_SDMA3 :
185197 case SOC15_IH_CLIENTID_SDMA4 :
186198 block = AMDGPU_RAS_BLOCK__SDMA ;
187- if (amdgpu_ip_version (dev -> adev , GC_HWIP , 0 ) == IP_VERSION (9 , 4 , 3 ) ||
188- amdgpu_ip_version (dev -> adev , GC_HWIP , 0 ) == IP_VERSION (9 , 4 , 4 ))
189- reset = AMDGPU_RAS_GPU_RESET_MODE1_RESET ;
190- else
199+ if (amdgpu_ip_version (dev -> adev , SDMA0_HWIP , 0 ) == IP_VERSION (4 , 4 , 2 )) {
200+ /* driver mode-2 for gfx poison is only supported by
201+ * pmfw 0x00557300 and onwards */
202+ if (dev -> adev -> pm .fw_version < 0x00557300 )
203+ reset = AMDGPU_RAS_GPU_RESET_MODE1_RESET ;
204+ else
205+ reset = AMDGPU_RAS_GPU_RESET_MODE2_RESET ;
206+ } else if (amdgpu_ip_version (dev -> adev , SDMA0_HWIP , 0 ) == IP_VERSION (4 , 4 , 5 )) {
207+ /* driver mode-2 for gfx poison is only supported by
208+ * pmfw 0x05550C00 and onwards */
209+ if (dev -> adev -> pm .fw_version < 0x05550C00 )
210+ reset = AMDGPU_RAS_GPU_RESET_MODE1_RESET ;
211+ else
212+ reset = AMDGPU_RAS_GPU_RESET_MODE2_RESET ;
213+ } else {
191214 reset = AMDGPU_RAS_GPU_RESET_MODE2_RESET ;
215+ }
192216 break ;
193217 default :
194218 dev_warn (dev -> adev -> dev ,
0 commit comments