Received: by 2002:a05:6a10:eb17:0:0:0:0 with SMTP id hx23csp201583pxb; Tue, 7 Sep 2021 22:13:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwPJbtfypnsZjCkm+xpx2Gc5lSsq9PDgd4iFWz+f5xR5w0o7RVsCZKDBRD1eik8KAjEAM2M X-Received: by 2002:a6b:fc17:: with SMTP id r23mr1685168ioh.89.1631078011340; Tue, 07 Sep 2021 22:13:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631078011; cv=none; d=google.com; s=arc-20160816; b=L3PH8RMO3jZiZlVENeW6puEuS/zxsQLCC8Fn/kpP0fogZPgcp70ke9SvKYvEfU1tIN 7dRJGrvcDB5DyoQ+xoJ1WXchjs8wfR3+39xfP7IzH6DH45BSPlhojZTEjukZb4SFENM+ JeiF/vkfgxpkMxCRNsb8SJr1QEw5PIJ0ItpmyxcORq/smSu0xPp0d0bdOAzvee7RX5Ou CJZS8bP+KFm3RaeDpQb+o+adnvBF9eb9xj6QfaQrdEHVODPKorSf++3wZCZ2HRpVt2oN m7gd/1qq1VM1uDTRsqiCcg0pI2+Wa6YJWJG/5PkH5wKdrZgx6TWu7y3kGpi8QtCVPtcg 3UtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-language:content-transfer-encoding :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject:dkim-signature; bh=eIXdkdrsHJkvyN8yFsYwAcBbOcA6lpGfQC0+bnLxKsE=; b=iKdAj/SRfz40nslYaaaLDXoWBVnyjm64CUMWKP/DvQz6YQEq8G4Ia/ZB97C1QHQmwx beh0XmvzfX9RQfXewqBjERxe6V/O36DG4Ew/IHq9x6TvVY4eeAkjiyAObf5uJ4SN4ZEK v9xCOHPqNp8vqqeB+6+kLCqIQovy3qv7sFaEOPNNTHsX8vB7reVwXOiewKdcO4IdIK/0 zC4XRUY0f+IRq9ZX9vwuwNehnwrntemFJXpdZ7lApMlvHaHXKycTR8p+otqXTTUrE2/T WR5UgEOvZ15VqR2qMRrAQckfVJPZAiVfkYo4lrONMOHdWMd3WJOwRDtxfzKFPqXICoiF jRAQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@web.de header.s=dbaedf251592 header.b=UZ4Xg8zz; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=web.de Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w125si963450jaa.84.2021.09.07.22.13.19; Tue, 07 Sep 2021 22:13:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@web.de header.s=dbaedf251592 header.b=UZ4Xg8zz; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=web.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233326AbhIHFJe (ORCPT + 99 others); Wed, 8 Sep 2021 01:09:34 -0400 Received: from mout.web.de ([212.227.15.4]:46897 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232364AbhIHFJc (ORCPT ); Wed, 8 Sep 2021 01:09:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1631077692; bh=HD5Uo5oy545G/HclCWF9thUZO6gf1AG7l8gK2j59nkw=; h=X-UI-Sender-Class:Subject:To:Cc:References:From:Date:In-Reply-To; b=UZ4Xg8zzaFYEWVmwBd64DmSA4V/oAdDY0rl8eZCZYB6v2QsaBzqIa6wQ8gP48NuDI AlygNmOWrKdbQIUYcuXW1tEzrEP6z2Bf2Yymgxo4c33xLoDoYc5zNXAFpKVVXBNazp DlnTw+YVUUciREC3CQ8hZRsko4rcMD9b0EMbyCK8= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from [192.168.1.27] ([77.183.4.164]) by smtp.web.de (mrweb001 [213.165.67.108]) with ESMTPSA (Nemesis) id 0MJlCO-1mOvkG2CG4-0019nN; Wed, 08 Sep 2021 07:08:12 +0200 Subject: Re: [BUG] Re: [PATCH] brcmfmac: use ISO3166 country code and 0 rev as fallback To: Shawn Guo Cc: Kalle Valo , =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= , Arend van Spriel , Franky Lin , Hante Meuleman , Chi-hsien Lin , Wright Feng , Chung-hsien Hsu , linux-wireless@vger.kernel.org, netdev@vger.kernel.org, brcm80211-dev-list.pdl@broadcom.com, SHA-cyfmac-dev-list@infineon.com, "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "linux-rockchip@lists.infradead.org" References: <20210425110200.3050-1-shawn.guo@linaro.org> <20210908010057.GB25255@dragon> From: Soeren Moch Message-ID: <100f5bef-936c-43f1-9b3e-a477a0640d84@web.de> Date: Wed, 8 Sep 2021 07:08:06 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <20210908010057.GB25255@dragon> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Content-Language: en-GB X-Provags-ID: V03:K1:rnZXS+qjfSYuAJB7XUhJsPzp8AYNANO+cxeRGgt00dy1YHCZ5sS TFrQkZ63oekGGXn2gipiOTZKBV6oxMU2jgrLlZoMB1OUD17c7HUbYh9p5iW0KmCDbMqPZ0D rLIg4tmlPdV1zAwftoNdIBT/GZ8jA+1wFAO+OGtsZ7zZHahY2WnR40ECo//4+IhunhyJi+O QvxWy06jDGAjqf5KixroQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:MXNMcLnxsX8=:ZvyzPEHMhk5vuazE/XgT66 xgMYtPgiYFhGbV8SdlbvszMyxr+jydbD14GpeT2jaL4UAZITdWQgs689rUH9QNrFap5w6ppzB LqlG77M0Lm0c/VuOJ86vfsgnXsrG6ASpGrlaEKliFe1zkWUQoRs9CeCKLvCBclg0uUkfTb6ks P1X2CcGQ9DSldGwMgL68gs2/DYskkWpl+Vkl21JLQP3//Q2p1KD/WBeTvajWcnT/tslAVM0FF dDF2f0Lel0TDM6QSsvqc9xGwebwpH+bgm9dMpw/DeKnPHE5x0BYuAiNFtniW8gAG9NBeoTcd0 4ay0LUADL2zJLQgG7MZ1KMX91UasnCt59K8C9flGd4DEgeVjT/NMjYH1/CH7Ykth1uRqWyeGu AGbQ975YMoAsPV/zQRwe5xCiEbBPAm4dn46eRGGVlsIow3xAoqW38VBGFtYHon3B4a4Fq4YLJ 3lwHmy22AgGplb3h/8dYVBF2PFyCgpHsiP8UFhZUJ368FamUD5GEkCYzXnIzRfNOAHQGMh9JC Xu02B8rlzXO4B/y9d194MXl5iPCmOM15kWXm5sd3VHel3gab/EPG6FcM3ibyFdnbT9BY6dgbF nXSPVKINBLT7ToRAwwKZ5qYKImncr7ThnU+OTSLc7eI9kF0RAI6hQWrCASlVcyKcJpNRp3gd2 P2LdOzzMDfN0iIZuiKBkCvmZ/3q1RSYlEesoj1NyppQzfydx2/807bMkKD2/dIr64hlLp7vsb IDYMKTAd7RTAzVf+FnUSQ13x9mYP9aUdZjZciAd0OIn7godoMdTihwPAeQ6falShfdP+sYDwK ZLI1HVOJgq3w7Q6SqQa9a9LhX7r6IBRECT+9KuklbiX8iY4xSrgmzxXcLYvQ+rkwE3QNNjOYC uMEGGJr09TRqB0bWgI/iRVBzLMgEyl1KC+9UZwphB5dg4lfcRbKnFRsMKqGLVQUJWAqUFndBl s+ZwadzXL+RInVIa5lVENjD0cJpnzXFjsxuErD3gKOgc8ZTCAHqZidrjUu6BI4/SYATLffTvU dGntLsDT1MVZptWsQJiosZD7XV/tkYSabt3FMgcKa6I5EGExhmg4sDGg/VS4hDDtxds1BVyIj cHZOR3GwXUlgyzkDrjcZHgSAQbA9gSmj0CF Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org Hi Shawn, On 08.09.21 03:00, Shawn Guo wrote: > Hi Soeren, > > On Tue, Sep 07, 2021 at 09:22:52PM +0200, Soeren Moch wrote: >> On 25.04.21 13:02, Shawn Guo wrote: >>> Instead of aborting country code setup in firmware, use ISO3166 countr= y >>> code and 0 rev as fallback, when country_codes mapping table is not >>> configured. This fallback saves the country_codes table setup for rec= ent >>> brcmfmac chipsets/firmwares, which just use ISO3166 code and require n= o >>> 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=C2=A0 6 2= 017 >> 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. 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". > 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. Soeren > > Shawn > >> Regards, >> Soeren >>> Signed-off-by: Shawn Guo >>> --- >>> .../broadcom/brcm80211/brcmfmac/cfg80211.c | 17 +++++++++++-----= - >>> 1 file changed, 11 insertions(+), 6 deletions(-) >>> >>> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211= .c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c >>> index f4405d7861b6..6cb09c7c37b6 100644 >>> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c >>> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c >>> @@ -7442,18 +7442,23 @@ static s32 brcmf_translate_country_code(struct= brcmf_pub *drvr, char alpha2[2], >>> s32 found_index; >>> int i; >>> >>> - country_codes =3D drvr->settings->country_codes; >>> - if (!country_codes) { >>> - brcmf_dbg(TRACE, "No country codes configured for device\n"); >>> - return -EINVAL; >>> - } >>> - >>> if ((alpha2[0] =3D=3D ccreq->country_abbrev[0]) && >>> (alpha2[1] =3D=3D ccreq->country_abbrev[1])) { >>> brcmf_dbg(TRACE, "Country code already set\n"); >>> return -EAGAIN; >>> } >>> >>> + country_codes =3D drvr->settings->country_codes; >>> + if (!country_codes) { >>> + brcmf_dbg(TRACE, "No country codes configured for device, using ISO= 3166 code and 0 rev\n"); >>> + memset(ccreq, 0, sizeof(*ccreq)); >>> + ccreq->country_abbrev[0] =3D alpha2[0]; >>> + ccreq->country_abbrev[1] =3D alpha2[1]; >>> + ccreq->ccode[0] =3D alpha2[0]; >>> + ccreq->ccode[1] =3D alpha2[1]; >>> + return 0; >>> + } >>> + >>> found_index =3D -1; >>> for (i =3D 0; i < country_codes->table_size; i++) { >>> cc =3D &country_codes->table[i];