lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c5980ac2-2b7c-2a4c-d0c2-5eab0ff01a5d@gmail.com>
Date:   Tue, 17 Apr 2018 11:07:00 -0400
From:   Andres Rodriguez <andresx7@...il.com>
To:     Christian König <christian.koenig@....com>,
        linux-kernel@...r.kernel.org
Cc:     andresx7@...il.com, gregkh@...uxfoundation.org, mcgrof@...nel.org,
        alexdeucher@...il.com, kvalo@...eaurora.org,
        arend.vanspriel@...adcom.com
Subject: Re: [PATCH 6/8] drm/amdgpu: use firmware_request_nowarn to load
 firmware



On 2018-04-17 04:48 AM, Christian König wrote:
> Well this is a rather big NAK for this patch.
> 
> Only a small fraction of the firmware files amdgpu uses are actually 
> optional (the ones with the *_2.bin name). All other files are mandatory 
> for correct driver operation.
> 
> There is a fallback when actually no firmware files at all are found, in 
> this case we at least try to get a picture on the screen so that the 
> user gets a hint on what is wrong. But this path isn't tested well and 
> breaks from time to time.
> 
> So when you get a message like "Direct firmware load for * failed with 
> error -2" even if it's one of the "*_2.bin" files that is a clear hint 
> that you should update your firmware package.

The amdgpu driver already provides clear messages when a required 
firmware file is not found. After request_firmware() returns an error, 
we will print:
"{ip_name}: Failed to load firmware {fw_name}"

When the firmware is optional, we won't print that message, and handle 
the firmware load in an appropriate way (re-use _1 firmware for_2 etc.)

Note that we care about informing the user *only* if the firmware was 
not found. If the firmware ends up coming from the fallback loader, but 
we do receive it, then we don't really care.

This is specially important since we don't print a success message on 
firmware load. So if we hit the fallback loader, the user will see a 
warning followed by silence, so it could cause confusion on whether the 
firmware load succeed or not.

These are my 2c in the matter.

Regards,
Andres


> 
> Regards,
> Christian.
> 
> Am 17.04.2018 um 00:24 schrieb Andres Rodriguez:
>> Currently, during the normal boot process the amdgpu driver will produce
>> spew like the following in dmesg:
>> Direct firmware load for amdgpu/polaris10_mec_2.bin failed with error -2
>>
>> This happens when amdgpu tries to load optional firmware files. So the
>> error does not affect the startup sequence.
>>
>> This patch switches the amdgpu to use firmware_request_nowarn(), which
>> will not produce the warnings mentioned above. Hopefully resulting in a
>> cleaner bootup log.
>>
>> Signed-off-by: Andres Rodriguez <andresx7@...il.com>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c    |  2 +-
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_device.c |  4 ++--
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h  |  2 +-
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c    |  2 +-
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c    |  2 +-
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c    |  2 +-
>>   drivers/gpu/drm/amd/amdgpu/ci_dpm.c        |  2 +-
>>   drivers/gpu/drm/amd/amdgpu/cik_sdma.c      |  2 +-
>>   drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c      |  8 ++++----
>>   drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c      | 12 +++++------
>>   drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c      | 32 
>> +++++++++++++++---------------
>>   drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c      | 12 +++++------
>>   drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c      |  2 +-
>>   drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c      |  2 +-
>>   drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c      |  2 +-
>>   drivers/gpu/drm/amd/amdgpu/psp_v10_0.c     |  2 +-
>>   drivers/gpu/drm/amd/amdgpu/psp_v3_1.c      |  4 ++--
>>   drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c     |  2 +-
>>   drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c     |  2 +-
>>   drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c     |  2 +-
>>   drivers/gpu/drm/amd/amdgpu/si_dpm.c        |  2 +-
>>   21 files changed, 51 insertions(+), 51 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
>> index 4466f3535e2d..6c950811c0a5 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c
>> @@ -811,7 +811,7 @@ static int amdgpu_cgs_get_firmware_info(struct 
>> cgs_device *cgs_device,
>>                   return -EINVAL;
>>               }
>> -            err = request_firmware(&adev->pm.fw, fw_name, adev->dev);
>> +            err = firmware_request_nowarn(&adev->pm.fw, fw_name, 
>> adev->dev);
>>               if (err) {
>>                   DRM_ERROR("Failed to request firmware\n");
>>                   return err;
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> index af1b879a9ee9..d6225619e69f 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
>> @@ -696,7 +696,7 @@ bool amdgpu_device_need_post(struct amdgpu_device 
>> *adev)
>>           if (adev->asic_type == CHIP_FIJI) {
>>               int err;
>>               uint32_t fw_ver;
>> -            err = request_firmware(&adev->pm.fw, 
>> "amdgpu/fiji_smc.bin", adev->dev);
>> +            err = firmware_request_nowarn(&adev->pm.fw, 
>> "amdgpu/fiji_smc.bin", adev->dev);
>>               /* force vPost if error occured */
>>               if (err)
>>                   return true;
>> @@ -1133,7 +1133,7 @@ static int 
>> amdgpu_device_parse_gpu_info_fw(struct amdgpu_device *adev)
>>       }
>>       snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_gpu_info.bin", 
>> chip_name);
>> -    err = request_firmware(&adev->firmware.gpu_info_fw, fw_name, 
>> adev->dev);
>> +    err = firmware_request_nowarn(&adev->firmware.gpu_info_fw, 
>> fw_name, adev->dev);
>>       if (err) {
>>           dev_err(adev->dev,
>>               "Failed to load gpu_info firmware \"%s\"\n",
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h
>> index 30b5500dc152..0acd1f3d14c8 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ucode.h
>> @@ -196,7 +196,7 @@ enum AMDGPU_UCODE_STATUS {
>>   struct amdgpu_firmware_info {
>>       /* ucode ID */
>>       enum AMDGPU_UCODE_ID ucode_id;
>> -    /* request_firmware */
>> +    /* firmware_request */
>>       const struct firmware *fw;
>>       /* starting mc address */
>>       uint64_t mc_addr;
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
>> index b2eae86bf906..4de018d45081 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_uvd.c
>> @@ -171,7 +171,7 @@ int amdgpu_uvd_sw_init(struct amdgpu_device *adev)
>>           return -EINVAL;
>>       }
>> -    r = request_firmware(&adev->uvd.fw, fw_name, adev->dev);
>> +    r = firmware_request_nowarn(&adev->uvd.fw, fw_name, adev->dev);
>>       if (r) {
>>           dev_err(adev->dev, "amdgpu_uvd: Can't load firmware \"%s\"\n",
>>               fw_name);
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
>> index d274ae535530..b6af824a2f44 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vce.c
>> @@ -138,7 +138,7 @@ int amdgpu_vce_sw_init(struct amdgpu_device *adev, 
>> unsigned long size)
>>           return -EINVAL;
>>       }
>> -    r = request_firmware(&adev->vce.fw, fw_name, adev->dev);
>> +    r = firmware_request_nowarn(&adev->vce.fw, fw_name, adev->dev);
>>       if (r) {
>>           dev_err(adev->dev, "amdgpu_vce: Can't load firmware \"%s\"\n",
>>               fw_name);
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c 
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
>> index 837962118dbc..bd650b87e281 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c
>> @@ -67,7 +67,7 @@ int amdgpu_vcn_sw_init(struct amdgpu_device *adev)
>>           return -EINVAL;
>>       }
>> -    r = request_firmware(&adev->vcn.fw, fw_name, adev->dev);
>> +    r = firmware_request_nowarn(&adev->vcn.fw, fw_name, adev->dev);
>>       if (r) {
>>           dev_err(adev->dev, "amdgpu_vcn: Can't load firmware \"%s\"\n",
>>               fw_name);
>> diff --git a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c 
>> b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c
>> index a0943aa8d1d3..95e1edc1311d 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/ci_dpm.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/ci_dpm.c
>> @@ -5849,7 +5849,7 @@ static int ci_dpm_init_microcode(struct 
>> amdgpu_device *adev)
>>       }
>>       snprintf(fw_name, sizeof(fw_name), "radeon/%s_smc.bin", chip_name);
>> -    err = request_firmware(&adev->pm.fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->pm.fw, fw_name, adev->dev);
>>       if (err)
>>           goto out;
>>       err = amdgpu_ucode_validate(adev->pm.fw);
>> diff --git a/drivers/gpu/drm/amd/amdgpu/cik_sdma.c 
>> b/drivers/gpu/drm/amd/amdgpu/cik_sdma.c
>> index 6e8278e689b1..93c8acca0360 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/cik_sdma.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/cik_sdma.c
>> @@ -135,7 +135,7 @@ static int cik_sdma_init_microcode(struct 
>> amdgpu_device *adev)
>>               snprintf(fw_name, sizeof(fw_name), "radeon/%s_sdma.bin", 
>> chip_name);
>>           else
>>               snprintf(fw_name, sizeof(fw_name), 
>> "radeon/%s_sdma1.bin", chip_name);
>> -        err = request_firmware(&adev->sdma.instance[i].fw, fw_name, 
>> adev->dev);
>> +        err = firmware_request_nowarn(&adev->sdma.instance[i].fw, 
>> fw_name, adev->dev);
>>           if (err)
>>               goto out;
>>           err = amdgpu_ucode_validate(adev->sdma.instance[i].fw);
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
>> index 9870d83b68c1..8aebab5edf15 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
>> @@ -335,7 +335,7 @@ static int gfx_v6_0_init_microcode(struct 
>> amdgpu_device *adev)
>>       }
>>       snprintf(fw_name, sizeof(fw_name), "radeon/%s_pfp.bin", chip_name);
>> -    err = request_firmware(&adev->gfx.pfp_fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->gfx.pfp_fw, fw_name, 
>> adev->dev);
>>       if (err)
>>           goto out;
>>       err = amdgpu_ucode_validate(adev->gfx.pfp_fw);
>> @@ -346,7 +346,7 @@ static int gfx_v6_0_init_microcode(struct 
>> amdgpu_device *adev)
>>       adev->gfx.pfp_feature_version = 
>> le32_to_cpu(cp_hdr->ucode_feature_version);
>>       snprintf(fw_name, sizeof(fw_name), "radeon/%s_me.bin", chip_name);
>> -    err = request_firmware(&adev->gfx.me_fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->gfx.me_fw, fw_name, adev->dev);
>>       if (err)
>>           goto out;
>>       err = amdgpu_ucode_validate(adev->gfx.me_fw);
>> @@ -357,7 +357,7 @@ static int gfx_v6_0_init_microcode(struct 
>> amdgpu_device *adev)
>>       adev->gfx.me_feature_version = 
>> le32_to_cpu(cp_hdr->ucode_feature_version);
>>       snprintf(fw_name, sizeof(fw_name), "radeon/%s_ce.bin", chip_name);
>> -    err = request_firmware(&adev->gfx.ce_fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->gfx.ce_fw, fw_name, adev->dev);
>>       if (err)
>>           goto out;
>>       err = amdgpu_ucode_validate(adev->gfx.ce_fw);
>> @@ -368,7 +368,7 @@ static int gfx_v6_0_init_microcode(struct 
>> amdgpu_device *adev)
>>       adev->gfx.ce_feature_version = 
>> le32_to_cpu(cp_hdr->ucode_feature_version);
>>       snprintf(fw_name, sizeof(fw_name), "radeon/%s_rlc.bin", chip_name);
>> -    err = request_firmware(&adev->gfx.rlc_fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->gfx.rlc_fw, fw_name, 
>> adev->dev);
>>       if (err)
>>           goto out;
>>       err = amdgpu_ucode_validate(adev->gfx.rlc_fw);
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
>> index a066c5eda135..35a0e46464a5 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
>> @@ -926,7 +926,7 @@ static int gfx_v7_0_init_microcode(struct 
>> amdgpu_device *adev)
>>       }
>>       snprintf(fw_name, sizeof(fw_name), "radeon/%s_pfp.bin", chip_name);
>> -    err = request_firmware(&adev->gfx.pfp_fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->gfx.pfp_fw, fw_name, 
>> adev->dev);
>>       if (err)
>>           goto out;
>>       err = amdgpu_ucode_validate(adev->gfx.pfp_fw);
>> @@ -934,7 +934,7 @@ static int gfx_v7_0_init_microcode(struct 
>> amdgpu_device *adev)
>>           goto out;
>>       snprintf(fw_name, sizeof(fw_name), "radeon/%s_me.bin", chip_name);
>> -    err = request_firmware(&adev->gfx.me_fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->gfx.me_fw, fw_name, adev->dev);
>>       if (err)
>>           goto out;
>>       err = amdgpu_ucode_validate(adev->gfx.me_fw);
>> @@ -942,7 +942,7 @@ static int gfx_v7_0_init_microcode(struct 
>> amdgpu_device *adev)
>>           goto out;
>>       snprintf(fw_name, sizeof(fw_name), "radeon/%s_ce.bin", chip_name);
>> -    err = request_firmware(&adev->gfx.ce_fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->gfx.ce_fw, fw_name, adev->dev);
>>       if (err)
>>           goto out;
>>       err = amdgpu_ucode_validate(adev->gfx.ce_fw);
>> @@ -950,7 +950,7 @@ static int gfx_v7_0_init_microcode(struct 
>> amdgpu_device *adev)
>>           goto out;
>>       snprintf(fw_name, sizeof(fw_name), "radeon/%s_mec.bin", chip_name);
>> -    err = request_firmware(&adev->gfx.mec_fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->gfx.mec_fw, fw_name, 
>> adev->dev);
>>       if (err)
>>           goto out;
>>       err = amdgpu_ucode_validate(adev->gfx.mec_fw);
>> @@ -959,7 +959,7 @@ static int gfx_v7_0_init_microcode(struct 
>> amdgpu_device *adev)
>>       if (adev->asic_type == CHIP_KAVERI) {
>>           snprintf(fw_name, sizeof(fw_name), "radeon/%s_mec2.bin", 
>> chip_name);
>> -        err = request_firmware(&adev->gfx.mec2_fw, fw_name, adev->dev);
>> +        err = firmware_request_nowarn(&adev->gfx.mec2_fw, fw_name, 
>> adev->dev);
>>           if (err)
>>               goto out;
>>           err = amdgpu_ucode_validate(adev->gfx.mec2_fw);
>> @@ -968,7 +968,7 @@ static int gfx_v7_0_init_microcode(struct 
>> amdgpu_device *adev)
>>       }
>>       snprintf(fw_name, sizeof(fw_name), "radeon/%s_rlc.bin", chip_name);
>> -    err = request_firmware(&adev->gfx.rlc_fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->gfx.rlc_fw, fw_name, 
>> adev->dev);
>>       if (err)
>>           goto out;
>>       err = amdgpu_ucode_validate(adev->gfx.rlc_fw);
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
>> index 4e694ae9f308..c16cd96a1557 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
>> @@ -936,14 +936,14 @@ static int gfx_v8_0_init_microcode(struct 
>> amdgpu_device *adev)
>>       if (adev->asic_type >= CHIP_POLARIS10 && adev->asic_type <= 
>> CHIP_POLARIS12) {
>>           snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_pfp_2.bin", 
>> chip_name);
>> -        err = request_firmware(&adev->gfx.pfp_fw, fw_name, adev->dev);
>> +        err = firmware_request_nowarn(&adev->gfx.pfp_fw, fw_name, 
>> adev->dev);
>>           if (err == -ENOENT) {
>>               snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_pfp.bin", 
>> chip_name);
>> -            err = request_firmware(&adev->gfx.pfp_fw, fw_name, 
>> adev->dev);
>> +            err = firmware_request_nowarn(&adev->gfx.pfp_fw, fw_name, 
>> adev->dev);
>>           }
>>       } else {
>>           snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_pfp.bin", 
>> chip_name);
>> -        err = request_firmware(&adev->gfx.pfp_fw, fw_name, adev->dev);
>> +        err = firmware_request_nowarn(&adev->gfx.pfp_fw, fw_name, 
>> adev->dev);
>>       }
>>       if (err)
>>           goto out;
>> @@ -956,14 +956,14 @@ static int gfx_v8_0_init_microcode(struct 
>> amdgpu_device *adev)
>>       if (adev->asic_type >= CHIP_POLARIS10 && adev->asic_type <= 
>> CHIP_POLARIS12) {
>>           snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_me_2.bin", 
>> chip_name);
>> -        err = request_firmware(&adev->gfx.me_fw, fw_name, adev->dev);
>> +        err = firmware_request_nowarn(&adev->gfx.me_fw, fw_name, 
>> adev->dev);
>>           if (err == -ENOENT) {
>>               snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_me.bin", 
>> chip_name);
>> -            err = request_firmware(&adev->gfx.me_fw, fw_name, 
>> adev->dev);
>> +            err = firmware_request_nowarn(&adev->gfx.me_fw, fw_name, 
>> adev->dev);
>>           }
>>       } else {
>>           snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_me.bin", 
>> chip_name);
>> -        err = request_firmware(&adev->gfx.me_fw, fw_name, adev->dev);
>> +        err = firmware_request_nowarn(&adev->gfx.me_fw, fw_name, 
>> adev->dev);
>>       }
>>       if (err)
>>           goto out;
>> @@ -977,14 +977,14 @@ static int gfx_v8_0_init_microcode(struct 
>> amdgpu_device *adev)
>>       if (adev->asic_type >= CHIP_POLARIS10 && adev->asic_type <= 
>> CHIP_POLARIS12) {
>>           snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ce_2.bin", 
>> chip_name);
>> -        err = request_firmware(&adev->gfx.ce_fw, fw_name, adev->dev);
>> +        err = firmware_request_nowarn(&adev->gfx.ce_fw, fw_name, 
>> adev->dev);
>>           if (err == -ENOENT) {
>>               snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ce.bin", 
>> chip_name);
>> -            err = request_firmware(&adev->gfx.ce_fw, fw_name, 
>> adev->dev);
>> +            err = firmware_request_nowarn(&adev->gfx.ce_fw, fw_name, 
>> adev->dev);
>>           }
>>       } else {
>>           snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ce.bin", 
>> chip_name);
>> -        err = request_firmware(&adev->gfx.ce_fw, fw_name, adev->dev);
>> +        err = firmware_request_nowarn(&adev->gfx.ce_fw, fw_name, 
>> adev->dev);
>>       }
>>       if (err)
>>           goto out;
>> @@ -1007,7 +1007,7 @@ static int gfx_v8_0_init_microcode(struct 
>> amdgpu_device *adev)
>>           adev->virt.chained_ib_support = false;
>>       snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_rlc.bin", chip_name);
>> -    err = request_firmware(&adev->gfx.rlc_fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->gfx.rlc_fw, fw_name, 
>> adev->dev);
>>       if (err)
>>           goto out;
>>       err = amdgpu_ucode_validate(adev->gfx.rlc_fw);
>> @@ -1057,14 +1057,14 @@ static int gfx_v8_0_init_microcode(struct 
>> amdgpu_device *adev)
>>       if (adev->asic_type >= CHIP_POLARIS10 && adev->asic_type <= 
>> CHIP_POLARIS12) {
>>           snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mec_2.bin", 
>> chip_name);
>> -        err = request_firmware(&adev->gfx.mec_fw, fw_name, adev->dev);
>> +        err = firmware_request_nowarn(&adev->gfx.mec_fw, fw_name, 
>> adev->dev);
>>           if (err == -ENOENT) {
>>               snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mec.bin", 
>> chip_name);
>> -            err = request_firmware(&adev->gfx.mec_fw, fw_name, 
>> adev->dev);
>> +            err = firmware_request_nowarn(&adev->gfx.mec_fw, fw_name, 
>> adev->dev);
>>           }
>>       } else {
>>           snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mec.bin", 
>> chip_name);
>> -        err = request_firmware(&adev->gfx.mec_fw, fw_name, adev->dev);
>> +        err = firmware_request_nowarn(&adev->gfx.mec_fw, fw_name, 
>> adev->dev);
>>       }
>>       if (err)
>>           goto out;
>> @@ -1079,14 +1079,14 @@ static int gfx_v8_0_init_microcode(struct 
>> amdgpu_device *adev)
>>           (adev->asic_type != CHIP_TOPAZ)) {
>>           if (adev->asic_type >= CHIP_POLARIS10 && adev->asic_type <= 
>> CHIP_POLARIS12) {
>>               snprintf(fw_name, sizeof(fw_name), 
>> "amdgpu/%s_mec2_2.bin", chip_name);
>> -            err = request_firmware(&adev->gfx.mec2_fw, fw_name, 
>> adev->dev);
>> +            err = firmware_request_nowarn(&adev->gfx.mec2_fw, 
>> fw_name, adev->dev);
>>               if (err == -ENOENT) {
>>                   snprintf(fw_name, sizeof(fw_name), 
>> "amdgpu/%s_mec2.bin", chip_name);
>> -                err = request_firmware(&adev->gfx.mec2_fw, fw_name, 
>> adev->dev);
>> +                err = firmware_request_nowarn(&adev->gfx.mec2_fw, 
>> fw_name, adev->dev);
>>               }
>>           } else {
>>               snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mec2.bin", 
>> chip_name);
>> -            err = request_firmware(&adev->gfx.mec2_fw, fw_name, 
>> adev->dev);
>> +            err = firmware_request_nowarn(&adev->gfx.mec2_fw, 
>> fw_name, adev->dev);
>>           }
>>           if (!err) {
>>               err = amdgpu_ucode_validate(adev->gfx.mec2_fw);
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
>> index c06479615e8a..9f70012c81ad 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
>> @@ -370,7 +370,7 @@ static int gfx_v9_0_init_microcode(struct 
>> amdgpu_device *adev)
>>       }
>>       snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_pfp.bin", chip_name);
>> -    err = request_firmware(&adev->gfx.pfp_fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->gfx.pfp_fw, fw_name, 
>> adev->dev);
>>       if (err)
>>           goto out;
>>       err = amdgpu_ucode_validate(adev->gfx.pfp_fw);
>> @@ -381,7 +381,7 @@ static int gfx_v9_0_init_microcode(struct 
>> amdgpu_device *adev)
>>       adev->gfx.pfp_feature_version = 
>> le32_to_cpu(cp_hdr->ucode_feature_version);
>>       snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_me.bin", chip_name);
>> -    err = request_firmware(&adev->gfx.me_fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->gfx.me_fw, fw_name, adev->dev);
>>       if (err)
>>           goto out;
>>       err = amdgpu_ucode_validate(adev->gfx.me_fw);
>> @@ -392,7 +392,7 @@ static int gfx_v9_0_init_microcode(struct 
>> amdgpu_device *adev)
>>       adev->gfx.me_feature_version = 
>> le32_to_cpu(cp_hdr->ucode_feature_version);
>>       snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ce.bin", chip_name);
>> -    err = request_firmware(&adev->gfx.ce_fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->gfx.ce_fw, fw_name, adev->dev);
>>       if (err)
>>           goto out;
>>       err = amdgpu_ucode_validate(adev->gfx.ce_fw);
>> @@ -403,7 +403,7 @@ static int gfx_v9_0_init_microcode(struct 
>> amdgpu_device *adev)
>>       adev->gfx.ce_feature_version = 
>> le32_to_cpu(cp_hdr->ucode_feature_version);
>>       snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_rlc.bin", chip_name);
>> -    err = request_firmware(&adev->gfx.rlc_fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->gfx.rlc_fw, fw_name, 
>> adev->dev);
>>       if (err)
>>           goto out;
>>       err = amdgpu_ucode_validate(adev->gfx.rlc_fw);
>> @@ -449,7 +449,7 @@ static int gfx_v9_0_init_microcode(struct 
>> amdgpu_device *adev)
>>           adev->gfx.rlc.register_restore[i] = le32_to_cpu(tmp[i]);
>>       snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mec.bin", chip_name);
>> -    err = request_firmware(&adev->gfx.mec_fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->gfx.mec_fw, fw_name, 
>> adev->dev);
>>       if (err)
>>           goto out;
>>       err = amdgpu_ucode_validate(adev->gfx.mec_fw);
>> @@ -461,7 +461,7 @@ static int gfx_v9_0_init_microcode(struct 
>> amdgpu_device *adev)
>>       snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mec2.bin", 
>> chip_name);
>> -    err = request_firmware(&adev->gfx.mec2_fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->gfx.mec2_fw, fw_name, 
>> adev->dev);
>>       if (!err) {
>>           err = amdgpu_ucode_validate(adev->gfx.mec2_fw);
>>           if (err)
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
>> index 8e28270d1ea9..4192a5a0c444 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
>> @@ -136,7 +136,7 @@ static int gmc_v6_0_init_microcode(struct 
>> amdgpu_device *adev)
>>           snprintf(fw_name, sizeof(fw_name), "radeon/si58_mc.bin");
>>       else
>>           snprintf(fw_name, sizeof(fw_name), "radeon/%s_mc.bin", 
>> chip_name);
>> -    err = request_firmware(&adev->mc.fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->mc.fw, fw_name, adev->dev);
>>       if (err)
>>           goto out;
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
>> index 86e9d682c59e..06deba7f707d 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
>> @@ -151,7 +151,7 @@ static int gmc_v7_0_init_microcode(struct 
>> amdgpu_device *adev)
>>       else
>>           snprintf(fw_name, sizeof(fw_name), "radeon/%s_mc.bin", 
>> chip_name);
>> -    err = request_firmware(&adev->mc.fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->mc.fw, fw_name, adev->dev);
>>       if (err)
>>           goto out;
>>       err = amdgpu_ucode_validate(adev->mc.fw);
>> diff --git a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
>> index 9a813d834f1a..cbce96198dbc 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
>> @@ -235,7 +235,7 @@ static int gmc_v8_0_init_microcode(struct 
>> amdgpu_device *adev)
>>       }
>>       snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_mc.bin", chip_name);
>> -    err = request_firmware(&adev->mc.fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->mc.fw, fw_name, adev->dev);
>>       if (err)
>>           goto out;
>>       err = amdgpu_ucode_validate(adev->mc.fw);
>> diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v10_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/psp_v10_0.c
>> index 5a9fe24697f9..718722ef1835 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/psp_v10_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/psp_v10_0.c
>> @@ -105,7 +105,7 @@ int psp_v10_0_init_microcode(struct psp_context *psp)
>>       }
>>       snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_asd.bin", chip_name);
>> -    err = request_firmware(&adev->psp.asd_fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->psp.asd_fw, fw_name, 
>> adev->dev);
>>       if (err)
>>           goto out;
>> diff --git a/drivers/gpu/drm/amd/amdgpu/psp_v3_1.c 
>> b/drivers/gpu/drm/amd/amdgpu/psp_v3_1.c
>> index 19bd1934e63d..dd5261577d9b 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/psp_v3_1.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/psp_v3_1.c
>> @@ -111,7 +111,7 @@ int psp_v3_1_init_microcode(struct psp_context *psp)
>>       }
>>       snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_sos.bin", chip_name);
>> -    err = request_firmware(&adev->psp.sos_fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->psp.sos_fw, fw_name, 
>> adev->dev);
>>       if (err)
>>           goto out;
>> @@ -131,7 +131,7 @@ int psp_v3_1_init_microcode(struct psp_context *psp)
>>                   le32_to_cpu(hdr->sos_offset_bytes);
>>       snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_asd.bin", chip_name);
>> -    err = request_firmware(&adev->psp.asd_fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->psp.asd_fw, fw_name, 
>> adev->dev);
>>       if (err)
>>           goto out;
>> diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c 
>> b/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
>> index d4787ad4d346..a2afbaacc7e5 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
>> @@ -146,7 +146,7 @@ static int sdma_v2_4_init_microcode(struct 
>> amdgpu_device *adev)
>>               snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_sdma.bin", 
>> chip_name);
>>           else
>>               snprintf(fw_name, sizeof(fw_name), 
>> "amdgpu/%s_sdma1.bin", chip_name);
>> -        err = request_firmware(&adev->sdma.instance[i].fw, fw_name, 
>> adev->dev);
>> +        err = firmware_request_nowarn(&adev->sdma.instance[i].fw, 
>> fw_name, adev->dev);
>>           if (err)
>>               goto out;
>>           err = amdgpu_ucode_validate(adev->sdma.instance[i].fw);
>> diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
>> index 521978c40537..75d2a9cc9268 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
>> @@ -298,7 +298,7 @@ static int sdma_v3_0_init_microcode(struct 
>> amdgpu_device *adev)
>>               snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_sdma.bin", 
>> chip_name);
>>           else
>>               snprintf(fw_name, sizeof(fw_name), 
>> "amdgpu/%s_sdma1.bin", chip_name);
>> -        err = request_firmware(&adev->sdma.instance[i].fw, fw_name, 
>> adev->dev);
>> +        err = firmware_request_nowarn(&adev->sdma.instance[i].fw, 
>> fw_name, adev->dev);
>>           if (err)
>>               goto out;
>>           err = amdgpu_ucode_validate(adev->sdma.instance[i].fw);
>> diff --git a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c 
>> b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
>> index 91cf95a8c39c..e1ebfb9e2650 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
>> @@ -176,7 +176,7 @@ static int sdma_v4_0_init_microcode(struct 
>> amdgpu_device *adev)
>>               snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_sdma.bin", 
>> chip_name);
>>           else
>>               snprintf(fw_name, sizeof(fw_name), 
>> "amdgpu/%s_sdma1.bin", chip_name);
>> -        err = request_firmware(&adev->sdma.instance[i].fw, fw_name, 
>> adev->dev);
>> +        err = firmware_request_nowarn(&adev->sdma.instance[i].fw, 
>> fw_name, adev->dev);
>>           if (err)
>>               goto out;
>>           err = amdgpu_ucode_validate(adev->sdma.instance[i].fw);
>> diff --git a/drivers/gpu/drm/amd/amdgpu/si_dpm.c 
>> b/drivers/gpu/drm/amd/amdgpu/si_dpm.c
>> index ce675a7f179a..5538a5269417 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/si_dpm.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/si_dpm.c
>> @@ -7687,7 +7687,7 @@ static int si_dpm_init_microcode(struct 
>> amdgpu_device *adev)
>>       }
>>       snprintf(fw_name, sizeof(fw_name), "radeon/%s_smc.bin", chip_name);
>> -    err = request_firmware(&adev->pm.fw, fw_name, adev->dev);
>> +    err = firmware_request_nowarn(&adev->pm.fw, fw_name, adev->dev);
>>       if (err)
>>           goto out;
>>       err = amdgpu_ucode_validate(adev->pm.fw);
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ