Re: [BUG] Re: [PATCH] brcmfmac: use ISO3166 country code and 0 rev as fallback
From: Shawn Guo <hidden>
Date: 2021-09-09 02:20:51
Also in:
linux-arm-kernel, linux-rockchip, lkml, netdev
On Wed, Sep 08, 2021 at 07:08:06AM +0200, Soeren Moch wrote:
Hi Shawn, On 08.09.21 03:00, Shawn Guo wrote:quoted
Hi Soeren, On Tue, Sep 07, 2021 at 09:22:52PM +0200, Soeren Moch wrote:quoted
On 25.04.21 13:02, Shawn Guo wrote:quoted
Instead of aborting country code setup in firmware, use ISO3166 country code and 0 rev as fallback, when country_codes mapping table is not configured. This fallback saves the country_codes table setup for recent brcmfmac chipsets/firmwares, which just use ISO3166 code and require no revision number.This patch breaks wireless support on RockPro64. At least the access point is not usable, station mode not tested. brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4359/9 wl0: Mar 6 2017 10:16:06 version 9.87.51.7 (r686312) FWID 01-4dcc75d9 Reverting this patch makes the access point show up again with linux-5.14 .Sorry for breaking your device! So it sounds like you do not have country_codes configured for your BCM4359/9 device, while it needs particular `rev` setup for the ccode you are testing with. It was "working" likely because you have a static `ccode` and `regrev` setting in nvram file.It always has been a mystery to me how country codes are configured for this device. Before I read your patch I did not even know that a translation table is required. Is there some documentation how this is supposed to work? Not sure if this makes a difference, BCM4359/9 is a Cypress device I think, I added mainline support for it some time ago.
One way to add the translation table is using DT. You can find more
info and example in following commits:
b41936227078 ("dt-bindings: bcm4329-fmac: add optional brcm,ccode-map")
1a3ac5c651a0 ("brcmfmac: support parse country code map from DT")
I have installed different firmware files, brcmfmac4359-sdio.clm_blob, brcmfmac4359-sdio.bin, brcmfmac4359-sdio.txt, the latter also linked as brcmfmac4359-sdio.pine64,rockpro64-2.1.txt. This probably is the nvram file. ccode and regrev are set to zero, which probably means 'international save settings".
I'm not sure how this 'international save settings' works for brcmfmac devices. Do you have more info or any pointers?
quoted
But roaming to a different region will mostly get you a broken WiFi support. Is it possible to set up the country_codes for your device to get it work properly?In linux-5.13 it worked, probably with save settings (not all channels selectable, limited tx power), with linux-5.14 it stopped working, so it is a regression. I personally would like to learn how all this is configured properly. For general use I think save settings are better than no wifi at all with this patch. This fallback to ISO CC seams to work with newer (Synaptics?) devices only.
I do not mind you send a reverting if you have problem to add a proper translation table for your device. But that would mean I have to add a pretty "meaningless" translation table for my devices :( Shawn