refine vcn firmware loading

Signed-off-by: Yang Wang <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
index 5e2b7c340724..8d65b096db90 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
@@ -94,18 +94,14 @@ static void amdgpu_vcn_idle_work_handler(struct work_struct 
*work);
 int amdgpu_vcn_early_init(struct amdgpu_device *adev)
 {
        char ucode_prefix[25];
-       char fw_name[40];
        int r, i;
 
+       amdgpu_ucode_ip_version_decode(adev, UVD_HWIP, ucode_prefix, 
sizeof(ucode_prefix));
        for (i = 0; i < adev->vcn.num_vcn_inst; i++) {
-               amdgpu_ucode_ip_version_decode(adev, UVD_HWIP, ucode_prefix, 
sizeof(ucode_prefix));
-               snprintf(fw_name, sizeof(fw_name), "amdgpu/%s.bin", 
ucode_prefix);
-               if (amdgpu_ip_version(adev, UVD_HWIP, 0) ==  IP_VERSION(4, 0, 
6) &&
-                       i == 1) {
-                       snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_%d.bin", 
ucode_prefix, i);
-               }
-
-               r = amdgpu_ucode_request(adev, &adev->vcn.fw[i], fw_name);
+               if (i == 1 && amdgpu_ip_version(adev, UVD_HWIP, 0) ==  
IP_VERSION(4, 0, 6))
+                       r = amdgpu_ucode_request(adev, &adev->vcn.fw[i], 
"amdgpu/%s_%d.bin", ucode_prefix, i);
+               else
+                       r = amdgpu_ucode_request(adev, &adev->vcn.fw[i], 
"amdgpu/%s.bin", ucode_prefix);
                if (r) {
                        amdgpu_ucode_release(&adev->vcn.fw[i]);
                        return r;
-- 
2.34.1

Reply via email to