Commit f8f70c13 authored by John Clements's avatar John Clements Committed by Alex Deucher

drm/amdgpu: disable mec2 fw bin loading

disable mec2 fw bin loading and reference on unsupported ASIC
Reviewed-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
Signed-off-by: default avatarJohn Clements <john.clements@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 211fe484
...@@ -107,14 +107,12 @@ MODULE_FIRMWARE("amdgpu/raven2_rlc.bin"); ...@@ -107,14 +107,12 @@ MODULE_FIRMWARE("amdgpu/raven2_rlc.bin");
MODULE_FIRMWARE("amdgpu/raven_kicker_rlc.bin"); MODULE_FIRMWARE("amdgpu/raven_kicker_rlc.bin");
MODULE_FIRMWARE("amdgpu/arcturus_mec.bin"); MODULE_FIRMWARE("amdgpu/arcturus_mec.bin");
MODULE_FIRMWARE("amdgpu/arcturus_mec2.bin");
MODULE_FIRMWARE("amdgpu/arcturus_rlc.bin"); MODULE_FIRMWARE("amdgpu/arcturus_rlc.bin");
MODULE_FIRMWARE("amdgpu/renoir_ce.bin"); MODULE_FIRMWARE("amdgpu/renoir_ce.bin");
MODULE_FIRMWARE("amdgpu/renoir_pfp.bin"); MODULE_FIRMWARE("amdgpu/renoir_pfp.bin");
MODULE_FIRMWARE("amdgpu/renoir_me.bin"); MODULE_FIRMWARE("amdgpu/renoir_me.bin");
MODULE_FIRMWARE("amdgpu/renoir_mec.bin"); MODULE_FIRMWARE("amdgpu/renoir_mec.bin");
MODULE_FIRMWARE("amdgpu/renoir_mec2.bin");
MODULE_FIRMWARE("amdgpu/renoir_rlc.bin"); MODULE_FIRMWARE("amdgpu/renoir_rlc.bin");
MODULE_FIRMWARE("amdgpu/green_sardine_ce.bin"); MODULE_FIRMWARE("amdgpu/green_sardine_ce.bin");
...@@ -1517,6 +1515,15 @@ static int gfx_v9_0_init_rlc_microcode(struct amdgpu_device *adev, ...@@ -1517,6 +1515,15 @@ static int gfx_v9_0_init_rlc_microcode(struct amdgpu_device *adev,
return err; return err;
} }
static bool gfx_v9_0_load_mec2_fw_bin_support(struct amdgpu_device *adev)
{
if (adev->asic_type == CHIP_ARCTURUS ||
adev->asic_type == CHIP_RENOIR)
return false;
return true;
}
static int gfx_v9_0_init_cp_compute_microcode(struct amdgpu_device *adev, static int gfx_v9_0_init_cp_compute_microcode(struct amdgpu_device *adev,
const char *chip_name) const char *chip_name)
{ {
...@@ -1538,21 +1545,23 @@ static int gfx_v9_0_init_cp_compute_microcode(struct amdgpu_device *adev, ...@@ -1538,21 +1545,23 @@ static int gfx_v9_0_init_cp_compute_microcode(struct amdgpu_device *adev,
adev->gfx.mec_feature_version = le32_to_cpu(cp_hdr->ucode_feature_version); adev->gfx.mec_feature_version = le32_to_cpu(cp_hdr->ucode_feature_version);
snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mec2.bin", chip_name); if (gfx_v9_0_load_mec2_fw_bin_support(adev)) {
err = request_firmware(&adev->gfx.mec2_fw, fw_name, adev->dev); snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mec2.bin", chip_name);
if (!err) { err = request_firmware(&adev->gfx.mec2_fw, fw_name, adev->dev);
err = amdgpu_ucode_validate(adev->gfx.mec2_fw); if (!err) {
if (err) err = amdgpu_ucode_validate(adev->gfx.mec2_fw);
goto out; if (err)
cp_hdr = (const struct gfx_firmware_header_v1_0 *) goto out;
adev->gfx.mec2_fw->data; cp_hdr = (const struct gfx_firmware_header_v1_0 *)
adev->gfx.mec2_fw_version = adev->gfx.mec2_fw->data;
le32_to_cpu(cp_hdr->header.ucode_version); adev->gfx.mec2_fw_version =
adev->gfx.mec2_feature_version = le32_to_cpu(cp_hdr->header.ucode_version);
le32_to_cpu(cp_hdr->ucode_feature_version); adev->gfx.mec2_feature_version =
} else { le32_to_cpu(cp_hdr->ucode_feature_version);
err = 0; } else {
adev->gfx.mec2_fw = NULL; err = 0;
adev->gfx.mec2_fw = NULL;
}
} }
if (adev->firmware.load_type == AMDGPU_FW_LOAD_PSP) { if (adev->firmware.load_type == AMDGPU_FW_LOAD_PSP) {
...@@ -1581,8 +1590,7 @@ static int gfx_v9_0_init_cp_compute_microcode(struct amdgpu_device *adev, ...@@ -1581,8 +1590,7 @@ static int gfx_v9_0_init_cp_compute_microcode(struct amdgpu_device *adev,
/* TODO: Determine if MEC2 JT FW loading can be removed /* TODO: Determine if MEC2 JT FW loading can be removed
for all GFX V9 asic and above */ for all GFX V9 asic and above */
if (adev->asic_type != CHIP_ARCTURUS && if (gfx_v9_0_load_mec2_fw_bin_support(adev)) {
adev->asic_type != CHIP_RENOIR) {
info = &adev->firmware.ucode[AMDGPU_UCODE_ID_CP_MEC2_JT]; info = &adev->firmware.ucode[AMDGPU_UCODE_ID_CP_MEC2_JT];
info->ucode_id = AMDGPU_UCODE_ID_CP_MEC2_JT; info->ucode_id = AMDGPU_UCODE_ID_CP_MEC2_JT;
info->fw = adev->gfx.mec2_fw; info->fw = adev->gfx.mec2_fw;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment