drm/amd: Use `amdgpu_ucode_*` helpers for CGS
authorMario Limonciello <mario.limonciello@amd.com>
Wed, 4 Jan 2023 14:37:32 +0000 (08:37 -0600)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 10 Jan 2023 19:32:58 +0000 (14:32 -0500)
The `amdgpu_ucode_request` helper will ensure that the return code for
missing firmware is -ENODEV so that early_init can fail.

The `amdgpu_ucode_release` helper is for symmetry on unloading.

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c

index f1a0503..456e385 100644 (file)
@@ -411,17 +411,10 @@ static int amdgpu_cgs_get_firmware_info(struct cgs_device *cgs_device,
                                return -EINVAL;
                        }
 
-                       err = request_firmware(&adev->pm.fw, fw_name, adev->dev);
-                       if (err) {
-                               DRM_ERROR("Failed to request firmware\n");
-                               return err;
-                       }
-
-                       err = amdgpu_ucode_validate(adev->pm.fw);
+                       err = amdgpu_ucode_request(adev, &adev->pm.fw, fw_name);
                        if (err) {
                                DRM_ERROR("Failed to load firmware \"%s\"", fw_name);
-                               release_firmware(adev->pm.fw);
-                               adev->pm.fw = NULL;
+                               amdgpu_ucode_release(&adev->pm.fw);
                                return err;
                        }