diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/5603-drm-amdgpu-update-smu-firmware-images-for-VI-variant.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/5603-drm-amdgpu-update-smu-firmware-images-for-VI-variant.patch | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/5603-drm-amdgpu-update-smu-firmware-images-for-VI-variant.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/5603-drm-amdgpu-update-smu-firmware-images-for-VI-variant.patch new file mode 100644 index 00000000..a829c99f --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/5603-drm-amdgpu-update-smu-firmware-images-for-VI-variant.patch @@ -0,0 +1,114 @@ +From 21aae6887c7514ecf1e82ca73f7692394ff4576e Mon Sep 17 00:00:00 2001 +From: Alex Deucher <alexander.deucher@amd.com> +Date: Wed, 17 Oct 2018 11:24:26 -0500 +Subject: [PATCH 5603/5725] drm/amdgpu: update smu firmware images for VI + variants (v2) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Some new variants require updated firmware. + +V2: add MODULE_FIRMWARE for new firmwares + +Reviewed-by: Huang Rui <ray.huang@amd.com> (v1) +Reviewed-by: Christian König <christian.koenig@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 33 +++++++++++++++++++++++---- + drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c | 3 +++ + 2 files changed, 31 insertions(+), 5 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c +index 8816c69..ceadeea 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c +@@ -330,7 +330,9 @@ static int amdgpu_cgs_get_firmware_info(struct cgs_device *cgs_device, + case CHIP_TOPAZ: + if (((adev->pdev->device == 0x6900) && (adev->pdev->revision == 0x81)) || + ((adev->pdev->device == 0x6900) && (adev->pdev->revision == 0x83)) || +- ((adev->pdev->device == 0x6907) && (adev->pdev->revision == 0x87))) { ++ ((adev->pdev->device == 0x6907) && (adev->pdev->revision == 0x87)) || ++ ((adev->pdev->device == 0x6900) && (adev->pdev->revision == 0xD1)) || ++ ((adev->pdev->device == 0x6900) && (adev->pdev->revision == 0xD3))) { + info->is_kicker = true; + strcpy(fw_name, "amdgpu/topaz_k_smc.bin"); + } else +@@ -351,7 +353,6 @@ static int amdgpu_cgs_get_firmware_info(struct cgs_device *cgs_device, + if (type == CGS_UCODE_ID_SMU) { + if (((adev->pdev->device == 0x67ef) && + ((adev->pdev->revision == 0xe0) || +- (adev->pdev->revision == 0xe2) || + (adev->pdev->revision == 0xe5))) || + ((adev->pdev->device == 0x67ff) && + ((adev->pdev->revision == 0xcf) || +@@ -359,8 +360,13 @@ static int amdgpu_cgs_get_firmware_info(struct cgs_device *cgs_device, + (adev->pdev->revision == 0xff)))) { + info->is_kicker = true; + strcpy(fw_name, "amdgpu/polaris11_k_smc.bin"); +- } else ++ } else if ((adev->pdev->device == 0x67ef) && ++ (adev->pdev->revision == 0xe2)) { ++ info->is_kicker = true; ++ strcpy(fw_name, "amdgpu/polaris11_k2_smc.bin"); ++ } else { + strcpy(fw_name, "amdgpu/polaris11_smc.bin"); ++ } + } else if (type == CGS_UCODE_ID_SMU_SK) { + strcpy(fw_name, "amdgpu/polaris11_smc_sk.bin"); + } +@@ -378,14 +384,31 @@ static int amdgpu_cgs_get_firmware_info(struct cgs_device *cgs_device, + (adev->pdev->revision == 0xef))) { + info->is_kicker = true; + strcpy(fw_name, "amdgpu/polaris10_k_smc.bin"); +- } else ++ } else if ((adev->pdev->device == 0x67df) && ++ ((adev->pdev->revision == 0xe1) || ++ (adev->pdev->revision == 0xf7))) { ++ info->is_kicker = true; ++ strcpy(fw_name, "amdgpu/polaris10_k2_smc.bin"); ++ } else { + strcpy(fw_name, "amdgpu/polaris10_smc.bin"); ++ } + } else if (type == CGS_UCODE_ID_SMU_SK) { + strcpy(fw_name, "amdgpu/polaris10_smc_sk.bin"); + } + break; + case CHIP_POLARIS12: +- strcpy(fw_name, "amdgpu/polaris12_smc.bin"); ++ 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)))) { ++ info->is_kicker = true; ++ strcpy(fw_name, "amdgpu/polaris12_k_smc.bin"); ++ } else { ++ strcpy(fw_name, "amdgpu/polaris12_smc.bin"); ++ } + break; + case CHIP_VEGAM: + strcpy(fw_name, "amdgpu/vegam_smc.bin"); +diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c +index 99d5e4f..a6edd5d 100644 +--- a/drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c ++++ b/drivers/gpu/drm/amd/powerplay/smumgr/smumgr.c +@@ -37,10 +37,13 @@ MODULE_FIRMWARE("amdgpu/fiji_smc.bin"); + MODULE_FIRMWARE("amdgpu/polaris10_smc.bin"); + MODULE_FIRMWARE("amdgpu/polaris10_smc_sk.bin"); + MODULE_FIRMWARE("amdgpu/polaris10_k_smc.bin"); ++MODULE_FIRMWARE("amdgpu/polaris10_k2_smc.bin"); + MODULE_FIRMWARE("amdgpu/polaris11_smc.bin"); + MODULE_FIRMWARE("amdgpu/polaris11_smc_sk.bin"); + MODULE_FIRMWARE("amdgpu/polaris11_k_smc.bin"); ++MODULE_FIRMWARE("amdgpu/polaris11_k2_smc.bin"); + MODULE_FIRMWARE("amdgpu/polaris12_smc.bin"); ++MODULE_FIRMWARE("amdgpu/polaris12_k_smc.bin"); + MODULE_FIRMWARE("amdgpu/vegam_smc.bin"); + MODULE_FIRMWARE("amdgpu/vega10_smc.bin"); + MODULE_FIRMWARE("amdgpu/vega10_acg_smc.bin"); +-- +2.7.4 + |