@@ -167,11 +167,23 @@ static void event_interrupt_poison_consumption_v9(struct kfd_node *dev,
167
167
case SOC15_IH_CLIENTID_SE3SH :
168
168
case SOC15_IH_CLIENTID_UTCL2 :
169
169
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 {
174
185
reset = AMDGPU_RAS_GPU_RESET_MODE2_RESET ;
186
+ }
175
187
break ;
176
188
case SOC15_IH_CLIENTID_VMC :
177
189
case SOC15_IH_CLIENTID_VMC1 :
@@ -184,11 +196,23 @@ static void event_interrupt_poison_consumption_v9(struct kfd_node *dev,
184
196
case SOC15_IH_CLIENTID_SDMA3 :
185
197
case SOC15_IH_CLIENTID_SDMA4 :
186
198
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 {
191
214
reset = AMDGPU_RAS_GPU_RESET_MODE2_RESET ;
215
+ }
192
216
break ;
193
217
default :
194
218
dev_warn (dev -> adev -> dev ,
0 commit comments