Re: [PATCH v6 42/45] drm/amd: Use `amdgpu_ucode_*` helpers for DMCU

Harry Wentland
2023-01-05T17:25:57Z

On 1/4/23 22:43, Mario Limonciello wrote:
> 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>
> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>

Reviewed-by: Harry Wentland <harry.wentland@amd.com>

Harry

> ---
> drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 11 ++---------
> 1 file changed, 2 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> index 61c192ead62f..79c4652e8e40 100644
> --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
> @@ -1881,20 +1881,13 @@ static int load_dmcu_fw(struct amdgpu_device *adev)
> return 0;
> }
>
> - r = request_firmware_direct(&adev->dm.fw_dmcu, fw_name_dmcu, adev->dev);
> - if (r == -ENOENT) {
> + r = amdgpu_ucode_request(adev, &adev->dm.fw_dmcu, fw_name_dmcu);
> + if (r == -ENODEV) {
> /* DMCU firmware is not necessary, so don't raise a fuss if it's missing */
> DRM_DEBUG_KMS("dm: DMCU firmware not found\n");
> adev->dm.fw_dmcu = NULL;
> return 0;
> }
> - if (r) {
> - dev_err(adev->dev, "amdgpu_dm: Can't load firmware \"%s\"\n",
> - fw_name_dmcu);
> - return r;
> - }
> -
> - r = amdgpu_ucode_validate(adev->dm.fw_dmcu);
> if (r) {
> dev_err(adev->dev, "amdgpu_dm: Can't validate firmware \"%s\"\n",
> fw_name_dmcu);