Browse Source

drm/amdgpu: update mc firmware image for polaris12 variants

Some new variants require updated firmware.

Signed-off-by: Junwei Zhang <Jerry.Zhang@amd.com>
Reviewed-by: Evan Quan <evan.quan@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Junwei Zhang 6 years ago
parent
commit
d7fd67653f
1 changed files with 10 additions and 0 deletions
  1. 10 0
      drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c

+ 10 - 0
drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c

@@ -56,6 +56,7 @@ MODULE_FIRMWARE("amdgpu/tonga_mc.bin");
 MODULE_FIRMWARE("amdgpu/polaris11_mc.bin");
 MODULE_FIRMWARE("amdgpu/polaris11_mc.bin");
 MODULE_FIRMWARE("amdgpu/polaris10_mc.bin");
 MODULE_FIRMWARE("amdgpu/polaris10_mc.bin");
 MODULE_FIRMWARE("amdgpu/polaris12_mc.bin");
 MODULE_FIRMWARE("amdgpu/polaris12_mc.bin");
+MODULE_FIRMWARE("amdgpu/polaris12_k_mc.bin");
 
 
 static const u32 golden_settings_tonga_a11[] =
 static const u32 golden_settings_tonga_a11[] =
 {
 {
@@ -231,6 +232,15 @@ static int gmc_v8_0_init_microcode(struct amdgpu_device *adev)
 		break;
 		break;
 	case CHIP_POLARIS12:
 	case CHIP_POLARIS12:
 		chip_name = "polaris12";
 		chip_name = "polaris12";
+		if (((adev->pdev->device == 0x6987) &&
+		     ((adev->pdev->revision == 0xc0) ||
+		      (adev->pdev->revision == 0xc3))) ||
+		    ((adev->pdev->device == 0x6981) &&
+		     ((adev->pdev->revision == 0x00) ||
+		      (adev->pdev->revision == 0x01) ||
+		      (adev->pdev->revision == 0x10)))) {
+			chip_name = "polaris12_k";
+		}
 		break;
 		break;
 	case CHIP_FIJI:
 	case CHIP_FIJI:
 	case CHIP_CARRIZO:
 	case CHIP_CARRIZO: