[PATCH] drm/amd: Adjust output for discovery error handling

Lazar, Lijo lijo.lazar at amd.com
Sat Jun 14 03:27:12 UTC 2025



On 6/14/2025 3:11 AM, Mario Limonciello wrote:
> From: Mario Limonciello <mario.limonciello at amd.com>
> 
> commit 017fbb6690c22 ("drm/amdgpu/discovery: check ip_discovery fw file
> available") added support for reading an amdgpu IP discovery bin file
> for some specific products. If it's not found then it will fallback to
> hardcoded values. However if it's not found there is also a lot of noise
> about missing files and errors.
> 
> Adjust the error handling to decrease most messages to DEBUG and to show
> at most one message to a user about the missing file at INFO level.
> 
> Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4312
> Fixes: 017fbb6690c22 ("drm/amdgpu/discovery: check ip_discovery fw file available")
> Signed-off-by: Mario Limonciello <mario.limonciello at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 17 ++++++-----------
>  1 file changed, 6 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
> index a0e9bf9b27108..8e4526a8c2600 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c
> @@ -321,10 +321,9 @@ static int amdgpu_discovery_read_binary_from_file(struct amdgpu_device *adev,
>  	const struct firmware *fw;
>  	int r;
>  
> -	r = request_firmware(&fw, fw_name, adev->dev);
> +	r = firmware_request_nowarn(&fw, fw_name, adev->dev);
>  	if (r) {
> -		dev_err(adev->dev, "can't load firmware \"%s\"\n",
> -			fw_name);
> +		drm_info(&adev->ddev, "Optional firmware \"%s\" was not found\n", fw_name);
>  		return r;
>  	}
>  
> @@ -459,16 +458,12 @@ static int amdgpu_discovery_init(struct amdgpu_device *adev)
>  	/* Read from file if it is the preferred option */
>  	fw_name = amdgpu_discovery_get_fw_name(adev);
>  	if (fw_name != NULL) {
> -		dev_info(adev->dev, "use ip discovery information from file");
> +		drm_dbg(&adev->ddev, "use ip discovery information from file");
>  		r = amdgpu_discovery_read_binary_from_file(adev, adev->mman.discovery_bin, fw_name);
> -
> -		if (r) {
> -			dev_err(adev->dev, "failed to read ip discovery binary from file\n");
> -			r = -EINVAL;
> +		if (r)
>  			goto out;
> -		}
> -
>  	} else {
> +		drm_dbg(&adev->ddev, "use ip discovery information from memory");
>  		r = amdgpu_discovery_read_binary_from_mem(
>  			adev, adev->mman.discovery_bin);
>  		if (r)
> @@ -1339,7 +1334,7 @@ static int amdgpu_discovery_reg_base_init(struct amdgpu_device *adev)
>  
>  	r = amdgpu_discovery_init(adev);
>  	if (r) {
> -		DRM_ERROR("amdgpu_discovery_init failed\n");
> +		drm_warn(&adev->ddev, "%s failed: %d\n", __func__, r);

This indeed is an error. Rest of the changes are fine.

Thanks,
Lijo

>  		return r;
>  	}
>  



More information about the amd-gfx mailing list