On Tue, Jun 17, 2025 at 2:31 PM Mario Limonciello <[email protected]> wrote: > > From: Mario Limonciello <[email protected]> > > 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 > users less about missing files. > > Reported-by: Marcus Seyfarth <[email protected]> > Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4312 > Tested-by: Marcus Seyfarth <[email protected]> > Fixes: 017fbb6690c22 ("drm/amdgpu/discovery: check ip_discovery fw file > available") > Signed-off-by: Mario Limonciello <[email protected]>
Acked-by: Alex Deucher <[email protected]> > --- > v2: > * Add tag > * Push error message into default flow only > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 25 ++++++++----------- > 1 file changed, 10 insertions(+), 15 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c > index a0e9bf9b27108..a29bd807e59f8 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) > @@ -1338,10 +1333,8 @@ static int amdgpu_discovery_reg_base_init(struct > amdgpu_device *adev) > int r; > > r = amdgpu_discovery_init(adev); > - if (r) { > - DRM_ERROR("amdgpu_discovery_init failed\n"); > + if (r) > return r; > - } > > wafl_ver = 0; > adev->gfx.xcc_mask = 0; > @@ -2579,8 +2572,10 @@ int amdgpu_discovery_set_ip_blocks(struct > amdgpu_device *adev) > break; > default: > r = amdgpu_discovery_reg_base_init(adev); > - if (r) > - return -EINVAL; > + if (r) { > + drm_err(&adev->ddev, "discovery failed: %d\n", r); > + return r; > + } > > amdgpu_discovery_harvest_ip(adev); > amdgpu_discovery_get_gfx_info(adev); > -- > 2.43.0 >
