Skip to content

Commit eff5e74

Browse files
alexdeuchergregkh
authored andcommitted
drm/amdgpu/gmc8: update MC firmware for polaris
commit a81a7c9 upstream. Some variants require different MC firmware images. Acked-by: Christian König <christian.koenig@amd.com> Reviewed-by: Junwei Zhang <Jerry.Zhang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 99e6900 commit eff5e74

1 file changed

Lines changed: 24 additions & 5 deletions

File tree

drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ MODULE_FIRMWARE("amdgpu/tonga_mc.bin");
5252
MODULE_FIRMWARE("amdgpu/polaris11_mc.bin");
5353
MODULE_FIRMWARE("amdgpu/polaris10_mc.bin");
5454
MODULE_FIRMWARE("amdgpu/polaris12_mc.bin");
55+
MODULE_FIRMWARE("amdgpu/polaris11_k_mc.bin");
56+
MODULE_FIRMWARE("amdgpu/polaris10_k_mc.bin");
5557
MODULE_FIRMWARE("amdgpu/polaris12_k_mc.bin");
5658

5759
static const u32 golden_settings_tonga_a11[] =
@@ -220,22 +222,39 @@ static int gmc_v8_0_init_microcode(struct amdgpu_device *adev)
220222
chip_name = "tonga";
221223
break;
222224
case CHIP_POLARIS11:
223-
chip_name = "polaris11";
225+
if (((adev->pdev->device == 0x67ef) &&
226+
((adev->pdev->revision == 0xe0) ||
227+
(adev->pdev->revision == 0xe5))) ||
228+
((adev->pdev->device == 0x67ff) &&
229+
((adev->pdev->revision == 0xcf) ||
230+
(adev->pdev->revision == 0xef) ||
231+
(adev->pdev->revision == 0xff))))
232+
chip_name = "polaris11_k";
233+
else if ((adev->pdev->device == 0x67ef) &&
234+
(adev->pdev->revision == 0xe2))
235+
chip_name = "polaris11_k";
236+
else
237+
chip_name = "polaris11";
224238
break;
225239
case CHIP_POLARIS10:
226-
chip_name = "polaris10";
240+
if ((adev->pdev->device == 0x67df) &&
241+
((adev->pdev->revision == 0xe1) ||
242+
(adev->pdev->revision == 0xf7)))
243+
chip_name = "polaris10_k";
244+
else
245+
chip_name = "polaris10";
227246
break;
228247
case CHIP_POLARIS12:
229-
chip_name = "polaris12";
230248
if (((adev->pdev->device == 0x6987) &&
231249
((adev->pdev->revision == 0xc0) ||
232250
(adev->pdev->revision == 0xc3))) ||
233251
((adev->pdev->device == 0x6981) &&
234252
((adev->pdev->revision == 0x00) ||
235253
(adev->pdev->revision == 0x01) ||
236-
(adev->pdev->revision == 0x10)))) {
254+
(adev->pdev->revision == 0x10))))
237255
chip_name = "polaris12_k";
238-
}
256+
else
257+
chip_name = "polaris12";
239258
break;
240259
case CHIP_FIJI:
241260
case CHIP_CARRIZO:

0 commit comments

Comments
 (0)