[PATCH] Revert "brcmfmac: use ISO3166 country code and 0 rev as fallback"

Subsystems: broadcom brcm80211 ieee802.11 wireless drivers, the rest

STALE1774d LANDED

Landed in mainline as 151a7c12c4fc on 2021-09-28.

3 messages, 3 authors, 2021-09-28 · open the first message on its own page

[PATCH] Revert "brcmfmac: use ISO3166 country code and 0 rev as fallback"

From: Soeren Moch <hidden>
Date: 2021-09-26 20:19:28

This reverts commit b0b524f079a23e440dd22b04e369368dde847533.

Commit b0b524f079a2 ("brcmfmac: use ISO3166 country code and 0 rev
as fallback") changes country setup to directly use ISO3166 country
codes if no more specific code is configured. This was done under
the assumption that brcmfmac firmwares can handle such simple
direct mapping from country codes to firmware ccode values.

Unfortunately this is not true for all chipset/firmware combinations.
E.g. BCM4359/9 devices stop working as access point with this change,
so revert the offending commit to avoid the regression.

Signed-off-by: Soeren Moch <redacted>
Cc: stable@vger.kernel.org  # 5.14.x
--
Cc: Shawn Guo <redacted>
Cc: Arend van Spriel <redacted>
Cc: Franky Lin <redacted>
Cc: Hante Meuleman <redacted>
Cc: Chi-hsien Lin <redacted>
Cc: Wright Feng <redacted>
Cc: Chung-hsien Hsu <redacted>
Cc: Kalle Valo <redacted>
Cc: linux-wireless@vger.kernel.org
Cc: brcm80211-dev-list.pdl@broadcom.com
Cc: SHA-cyfmac-dev-list@infineon.com
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
---
 .../broadcom/brcm80211/brcmfmac/cfg80211.c      | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
index f7b96cd69242..9db12ffd2ff8 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
@@ -7463,23 +7463,18 @@ static s32 brcmf_translate_country_code(struct brcmf_pub *drvr, char alpha2[2],
 	s32 found_index;
 	int i;

+	country_codes = drvr->settings->country_codes;
+	if (!country_codes) {
+		brcmf_dbg(TRACE, "No country codes configured for device\n");
+		return -EINVAL;
+	}
+
 	if ((alpha2[0] == ccreq->country_abbrev[0]) &&
 	    (alpha2[1] == ccreq->country_abbrev[1])) {
 		brcmf_dbg(TRACE, "Country code already set\n");
 		return -EAGAIN;
 	}

-	country_codes = drvr->settings->country_codes;
-	if (!country_codes) {
-		brcmf_dbg(TRACE, "No country codes configured for device, using ISO3166 code and 0 rev\n");
-		memset(ccreq, 0, sizeof(*ccreq));
-		ccreq->country_abbrev[0] = alpha2[0];
-		ccreq->country_abbrev[1] = alpha2[1];
-		ccreq->ccode[0] = alpha2[0];
-		ccreq->ccode[1] = alpha2[1];
-		return 0;
-	}
-
 	found_index = -1;
 	for (i = 0; i < country_codes->table_size; i++) {
 		cc = &country_codes->table[i];
--
2.25.1

Re: [PATCH] Revert "brcmfmac: use ISO3166 country code and 0 rev as fallback"

From: Shawn Guo <hidden>
Date: 2021-09-27 00:08:39

On Sun, Sep 26, 2021 at 10:19:05PM +0200, Soeren Moch wrote:
This reverts commit b0b524f079a23e440dd22b04e369368dde847533.

Commit b0b524f079a2 ("brcmfmac: use ISO3166 country code and 0 rev
as fallback") changes country setup to directly use ISO3166 country
codes if no more specific code is configured. This was done under
the assumption that brcmfmac firmwares can handle such simple
direct mapping from country codes to firmware ccode values.

Unfortunately this is not true for all chipset/firmware combinations.
E.g. BCM4359/9 devices stop working as access point with this change,
so revert the offending commit to avoid the regression.

Signed-off-by: Soeren Moch <redacted>
Cc: stable@vger.kernel.org  # 5.14.x
Acked-by: Shawn Guo <redacted>

Re: [PATCH] Revert "brcmfmac: use ISO3166 country code and 0 rev as fallback"

From: Kalle Valo <hidden>
Date: 2021-09-28 07:08:57

Soeren Moch [off-list ref] wrote:
This reverts commit b0b524f079a23e440dd22b04e369368dde847533.

Commit b0b524f079a2 ("brcmfmac: use ISO3166 country code and 0 rev
as fallback") changes country setup to directly use ISO3166 country
codes if no more specific code is configured. This was done under
the assumption that brcmfmac firmwares can handle such simple
direct mapping from country codes to firmware ccode values.

Unfortunately this is not true for all chipset/firmware combinations.
E.g. BCM4359/9 devices stop working as access point with this change,
so revert the offending commit to avoid the regression.

Signed-off-by: Soeren Moch <redacted>
Cc: stable@vger.kernel.org  # 5.14.x
Acked-by: Shawn Guo <redacted>
Patch applied to wireless-drivers.git, thanks.

151a7c12c4fc Revert "brcmfmac: use ISO3166 country code and 0 rev as fallback"

-- 
https://patchwork.kernel.org/project/linux-wireless/patch/20210926201905.211605-1-smoch@web.de/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help