]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu: refine gmc firmware loading
authorYang Wang <kevinyang.wang@amd.com>
Thu, 30 May 2024 15:28:35 +0000 (23:28 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 14 Jun 2024 20:17:12 +0000 (16:17 -0400)
refine gmc firmware loading

Signed-off-by: Yang Wang <kevinyang.wang@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c

index 3e38d8bfcb690b98755865f223776f370651c70c..d36725666b54ccf8472e4c0ef374ffcfc23071a8 100644 (file)
@@ -98,9 +98,7 @@ static void gmc_v6_0_mc_resume(struct amdgpu_device *adev)
 static int gmc_v6_0_init_microcode(struct amdgpu_device *adev)
 {
        const char *chip_name;
-       char fw_name[30];
        int err;
-       bool is_58_fw = false;
 
        DRM_DEBUG("\n");
 
@@ -126,17 +124,13 @@ static int gmc_v6_0_init_microcode(struct amdgpu_device *adev)
 
        /* this memory configuration requires special firmware */
        if (((RREG32(mmMC_SEQ_MISC0) & 0xff000000) >> 24) == 0x58)
-               is_58_fw = true;
+               chip_name = "si58";
 
-       if (is_58_fw)
-               snprintf(fw_name, sizeof(fw_name), "amdgpu/si58_mc.bin");
-       else
-               snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mc.bin", chip_name);
-       err = amdgpu_ucode_request(adev, &adev->gmc.fw, fw_name);
+       err = amdgpu_ucode_request(adev, &adev->gmc.fw, "amdgpu/%s_mc.bin", chip_name);
        if (err) {
                dev_err(adev->dev,
-                      "si_mc: Failed to load firmware \"%s\"\n",
-                      fw_name);
+                      "si_mc: Failed to load firmware \"%s_mc.bin\"\n",
+                      chip_name);
                amdgpu_ucode_release(&adev->gmc.fw);
        }
        return err;
index 85df8fc8106560fc30187e08ab723c8ddfc13b78..994432fb57eafa155cce1c05b35d2fe6440594b4 100644 (file)
@@ -130,7 +130,6 @@ static void gmc_v7_0_mc_resume(struct amdgpu_device *adev)
 static int gmc_v7_0_init_microcode(struct amdgpu_device *adev)
 {
        const char *chip_name;
-       char fw_name[30];
        int err;
 
        DRM_DEBUG("\n");
@@ -153,11 +152,9 @@ static int gmc_v7_0_init_microcode(struct amdgpu_device *adev)
                return -EINVAL;
        }
 
-       snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mc.bin", chip_name);
-
-       err = amdgpu_ucode_request(adev, &adev->gmc.fw, fw_name);
+       err = amdgpu_ucode_request(adev, &adev->gmc.fw, "amdgpu/%s_mc.bin", chip_name);
        if (err) {
-               pr_err("cik_mc: Failed to load firmware \"%s\"\n", fw_name);
+               pr_err("cik_mc: Failed to load firmware \"%s_mc.bin\"\n", chip_name);
                amdgpu_ucode_release(&adev->gmc.fw);
        }
        return err;
index fc97757e33d93814a8f4a22309b0873a471bc141..86488c052f822469483a8e8fa1d69b5023deacc9 100644 (file)
@@ -212,7 +212,6 @@ static void gmc_v8_0_mc_resume(struct amdgpu_device *adev)
 static int gmc_v8_0_init_microcode(struct amdgpu_device *adev)
 {
        const char *chip_name;
-       char fw_name[30];
        int err;
 
        DRM_DEBUG("\n");
@@ -255,10 +254,9 @@ static int gmc_v8_0_init_microcode(struct amdgpu_device *adev)
                return -EINVAL;
        }
 
-       snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mc.bin", chip_name);
-       err = amdgpu_ucode_request(adev, &adev->gmc.fw, fw_name);
+       err = amdgpu_ucode_request(adev, &adev->gmc.fw, "amdgpu/%s_mc.bin", chip_name);
        if (err) {
-               pr_err("mc: Failed to load firmware \"%s\"\n", fw_name);
+               pr_err("mc: Failed to load firmware \"%s_mc.bin\"\n", chip_name);
                amdgpu_ucode_release(&adev->gmc.fw);
        }
        return err;