linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Chi-Hsien Lin <Chi-Hsien.Lin@cypress.com>
To: Hans de Goede <hdegoede@redhat.com>,
	Arend van Spriel <arend.vanspriel@broadcom.com>,
	Franky Lin <franky.lin@broadcom.com>,
	Hante Meuleman <hante.meuleman@broadcom.com>,
	Kalle Valo <kvalo@codeaurora.org>,
	Wright Feng <Wright.Feng@cypress.com>
Cc: "linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>,
	"brcm80211-dev-list.pdl@broadcom.com" 
	<brcm80211-dev-list.pdl@broadcom.com>,
	John Van Boxtel <John.VanBoxtel@cypress.com>
Subject: Re: [PATCH v2] brcmfmac: Use firmware_request_nowarn for the clm_blob
Date: Thu, 10 Jan 2019 08:18:34 +0000	[thread overview]
Message-ID: <f2d8d0fc-a42a-b760-6361-5fd390f8eda5@cypress.com> (raw)
In-Reply-To: <20190107133327.9297-1-hdegoede@redhat.com>



On 01/07/2019 9:33, Hans de Goede wrote:
> The linux-firmware brcmfmac firmware files contain an embedded table with
> per country allowed channels and strength info.
> 
> For recent hardware these versions of the firmware are specially build for
> linux-firmware, the firmware files directly available from Cypress rely on
> a separate clm_blob file for this info.
> 
> For some unknown reason Cypress refuses to provide the standard firmware
> files + clm_blob files it uses elsewhere for inclusion into linux-firmware,
> instead relying on these special builds with the clm_blob info embedded.
> This means that the linux-firmware firmware versions often lag behind,
> but I digress.

Hans,

Historically the wifi firmware bin would contain all individual customer 
board regulatory data which was selected via OTP (or nvram) at firmware 
boot. This eventually became unscalable because the FW would need to be 
updated for any new customer product and/or change.  Also the table used 
more and more critical memory resources. Therefore, the regulatory data 
was separated into a downloadable unit which allowed the FW to remain 
independent and save on critical (FW) memory resources.

The tricky thing is that clm_blob contains regulatory data that is 
specific to a board, not just the chip. Also the regulatory rules often 
require that a product not be able to be misconfigured (intentionally or 
accidentally). To avoid regulatory violations for our customers and 
general confusion, clm_blob files the matches the hardware should be 
delivered by hardware (board) vendors.

As you mentioned, this paragraph has disgressed. Please remove it from 
the commit message.

> 
> The brcmfmac driver does support the separate clm_blob file and always
> tries to load this. Currently we use request_firmware for this. This means
> that on any standard install, using the standard combo of linux-kernel +
> linux-firmware, we will get a warning:
> "Direct firmware load for ... failed with error -2"
> 
> On top of this, brcmfmac itself prints: "no clm_blob available (err=-2),
> device may have limited channels available".
> 
> This commit switches to firmware_request_nowarn, fixing almost any brcmfmac
> device logging the warning (it leaves the brcmfmac info message in place).
> 
> Signed-off-by: Hans de Goede <hdegoede@redhat.com>
> ---
> Changes in v2:
> -Use firmware_request_nowarn instead of request_firmware_direct
> -Reword commit message a bit to match (and fix a typo)
> ---
>   drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
> index 0bb16bf574e3..e29f56888761 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c
> @@ -149,7 +149,7 @@ static int brcmf_c_process_clm_blob(struct brcmf_if *ifp)
>   		return err;
>   	}
>   
> -	err = request_firmware(&clm, clm_name, bus->dev);
> +	err = firmware_request_nowarn(&clm, clm_name, bus->dev);
>   	if (err) {
>   		brcmf_info("no clm_blob available (err=%d), device may have limited channels available\n",
>   			   err);
> 

  reply	other threads:[~2019-01-10  8:18 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-07 13:33 [PATCH v2] brcmfmac: Use firmware_request_nowarn for the clm_blob Hans de Goede
2019-01-10  8:18 ` Chi-Hsien Lin [this message]
2019-01-10  9:07   ` Hans de Goede
2019-01-10 11:41 ` Kalle Valo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f2d8d0fc-a42a-b760-6361-5fd390f8eda5@cypress.com \
    --to=chi-hsien.lin@cypress.com \
    --cc=John.VanBoxtel@cypress.com \
    --cc=Wright.Feng@cypress.com \
    --cc=arend.vanspriel@broadcom.com \
    --cc=brcm80211-dev-list.pdl@broadcom.com \
    --cc=franky.lin@broadcom.com \
    --cc=hante.meuleman@broadcom.com \
    --cc=hdegoede@redhat.com \
    --cc=kvalo@codeaurora.org \
    --cc=linux-wireless@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).