Received: by 10.192.165.156 with SMTP id m28csp199394imm; Tue, 17 Apr 2018 08:42:46 -0700 (PDT) X-Google-Smtp-Source: AIpwx48PsLUftRSODmleLrT+esLRKAsLnzy/Q7e9hqy9kPDb1Og/Z0OdwTyLHPX0Ire6UDkhPH3h X-Received: by 10.99.0.4 with SMTP id 4mr2176448pga.107.1523979766598; Tue, 17 Apr 2018 08:42:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523979766; cv=none; d=google.com; s=arc-20160816; b=ATEvofZrxtgM1eUZtm6A9uxgWzATS+O9FlLb8mSQzCVglppbfQo8iqeWyTpMVnP0KF 4Xb/mN0Bl8EDhIjQklyJRYsa7TWqS6hxsyGc5joTje0715M9Nk+5ceez5GPufU2eWnqD cpVLkhn8VvWowrktHhjL+7Z7vN83wWbrVsGdmeiWQgHF+5LXK73aSK8qPOiuHCsHHw9F SzvftD7ckECdBZwufnbwCFnyh07+DHctI4D2c+C3AcIfR5dz+9PYJL6yOHJ6WGyA6yyD UB8bnBKFxxojcjgFZzu0gWG/LKd3R/0Bd0UW5FSsQKS6kkrzdWqA5Cfa+YfmSEBUbHmX Fq2A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:to:subject:cc:dkim-signature :arc-authentication-results; bh=GPDUPwINkjonSr6xdaNvxZilADPUsh/VbLyiyX7uKrk=; b=iP+xzw7KPTHRVZQuGH76TalmGNAAcMpGPsdWvbfs9biiLmfK06TB7rLf5RR7ZBiQkH b9tjoyD1narmsnNGw85IJkZvsa1cEdbZ1RfLjfcTBgieDXrYMXwW0uBeQOcBsl955jvV 1a1+WYgmjExmh6JdZ2wAH49/1l5h2cFgkuWvH6RNDn98iKBm4ZglZY4eZO+P26L6ZV0q mB+Ht6y9gUViRqqHt+o/DVZeyLI8ODXY+RLSbpZ6MLIKjZc+RHzDjv9Um5XJ9Bs9wdC5 fWLnfMKyFoW4Ryn7OyFh8rY9cNga2LBsCUko3Jaw8KnNI7vEBOM6FG5udkylScOwBj+3 N+vA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=h3fD28uB; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g127si3218680pgc.428.2018.04.17.08.42.31; Tue, 17 Apr 2018 08:42:46 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=h3fD28uB; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752900AbeDQPlL (ORCPT + 99 others); Tue, 17 Apr 2018 11:41:11 -0400 Received: from mail-io0-f175.google.com ([209.85.223.175]:38743 "EHLO mail-io0-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752619AbeDQPlH (ORCPT ); Tue, 17 Apr 2018 11:41:07 -0400 Received: by mail-io0-f175.google.com with SMTP id h9so9302420iob.5 for ; Tue, 17 Apr 2018 08:41:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=cc:subject:to:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=GPDUPwINkjonSr6xdaNvxZilADPUsh/VbLyiyX7uKrk=; b=h3fD28uBkP4o3euaWHE+Xs+fd/SyDgzQF4anKHI6vRzG3wuM1+bVhzQ5Nuz0WozIHl BpR0bzQ61KdWMjoXUL0YCqeaPpZS9FyN75DHSanYR76TPqS010mL/395OISmH2W+tBRn OZU/4sSty+mlmONCu60pq8l8dPwFZeUm5wJedmPfLd6SyekSN/b+JUJ/89mvqvtpX7k1 uHaQuaf3870YWwf1t2bZbt4lzglBRsY8CfTviDwh8Z0B8EGH56floUkNbQqdFHEZIv2T jSnBzYWX7z2IbReV31cqTzeg1BPfaFRIjvW7IIFnYO4rVfdTyE4HYa88WIxhKkfpdp7r L8Kw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:cc:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=GPDUPwINkjonSr6xdaNvxZilADPUsh/VbLyiyX7uKrk=; b=sCDym0rCRGTCd9mJ6r5ozYwAE/0fA1ueRhNDW6gSugnwDjq+GPpKCC7jAoQs6CvyA+ Xn5IPdVqFl+JNJ4kAFeuK1f2becwG0uMKLCE0+x2mIs1rSB4rwR7KfQ7eMzVAa+ThV84 whVcCbQ8Q+ASFtcWsymXmk7o74Pyk6NO+MJhV1wrn0AcRBkaE42xVyZVPZUyaJG7CGTm OqhfowW/oyLv7bHfG45Y1x8bnh51Fua0GrKtKMepjjLywf1sdIyRj/d8XldtNDwQYAzf QDtQES0RCQH5IRL+Zr0E69XRQl9GGB1wa/qkWyTRZfi7nNwsVXa3OPNsZrhHm8WChTqW D+xg== X-Gm-Message-State: ALQs6tAlhydMa9P7YvToReaVAzq3pFFF4ALJL4nOCf+GFnFLvSwxIW2C XbbjKDlB3P4netKZ1x/MYqc= X-Received: by 10.107.158.207 with SMTP id h198mr2774018ioe.100.1523979666675; Tue, 17 Apr 2018 08:41:06 -0700 (PDT) Received: from [192.168.0.26] (184-175-36-239.dsl.teksavvy.com. [184.175.36.239]) by smtp.gmail.com with ESMTPSA id s128-v6sm6098938itb.39.2018.04.17.08.41.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 17 Apr 2018 08:41:05 -0700 (PDT) Cc: andresx7@gmail.com, gregkh@linuxfoundation.org, mcgrof@kernel.org, alexdeucher@gmail.com, kvalo@codeaurora.org, arend.vanspriel@broadcom.com Subject: Re: [PATCH 6/8] drm/amdgpu: use firmware_request_nowarn to load firmware To: =?UTF-8?Q?Christian_K=c3=b6nig?= , linux-kernel@vger.kernel.org References: <20180416222427.29683-1-andresx7@gmail.com> <20180416222427.29683-7-andresx7@gmail.com> <2c27b97a-5cb7-92c3-d4d8-a9d274a2f1cf@amd.com> <459ec1e2-bb64-c5c5-75c0-47f443b35cc6@amd.com> From: Andres Rodriguez Message-ID: <01911e9a-36f6-5fee-41d0-2eb5fc187ec1@gmail.com> Date: Tue, 17 Apr 2018 11:41:04 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <459ec1e2-bb64-c5c5-75c0-47f443b35cc6@amd.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 2018-04-17 11:33 AM, Christian König wrote: > Am 17.04.2018 um 17:07 schrieb Andres Rodriguez: >> >> >> 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. > > And that is exactly what I disagree on. Even when we used the fallback > there should definitely be an error message that the real firmware > wasn't found The request_firmware() fallback does fetch the real firmware. Why should a user configuration knob produce an error message if the behaviour is valid? Regards, Andres > > We should probably add a message that the fallback is used and remove > the error message that the firmware couldn't be loaded. > > Regards, > Christian. > >> >> 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 >>>> --- >>>>   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); >>> >