From: Alessio Ferri <alessio.ferri@mythread.it>
To: linux-wireless@vger.kernel.org, b43-dev@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 6/7] b43: complete N-PHY rev 8 + radio 2057 rev 8
Date: Sun, 24 May 2026 23:35:43 +0200 [thread overview]
Message-ID: <20260524233543.2ff6b55f@fedora> (raw)
In-Reply-To: <20260524233228.06b38dba@fedora>
Add the 2.4 GHz channel info table for N-PHY rev 8 paired with
radio 2057 rev 8 and wire it to the existing dispatcher in
r2057_get_chantabent_rev7().
The dispatcher's case 8 currently handles radio_rev == 5 only.
For radio_rev == 8 both output pointers stay NULL,
b43_nphy_set_channel() returns an error and channel switch to
the default channel fails.
The new b43_nphy_chantab_phy_rev8_radio_rev8[] is 14 entries
covering the standard 2.4 GHz channel set (2412..2472 in 5 MHz
steps, plus 2484 for channel 14).
Values extracted from an MMIO dump of the proprietary Broadcom wl
driver running on BCM6362 silicon (wl driver 6.30.102.7).
Assisted-by: Claude:claude-4.7-opus
Signed-off-by: Alessio Ferri <alessio.ferri@mythread.it>
---
drivers/net/wireless/broadcom/b43/radio_2057.c | 106
+++++++++++++++++++++++++ 1 file changed, 106 insertions(+)
diff --git a/drivers/net/wireless/broadcom/b43/radio_2057.c
b/drivers/net/wireless/broadcom/b43/radio_2057.c index
9f693d92b..e761f899b 100644 ---
a/drivers/net/wireless/broadcom/b43/radio_2057.c +++
b/drivers/net/wireless/broadcom/b43/radio_2057.c @@ -445,6 +445,109 @@
static const struct b43_nphy_chantabent_rev7_2g
b43_nphy_chantab_phy_rev17_radio }, };
+/* Extracted from MMIO dump of 6.30.102.7 */
+static const struct b43_nphy_chantabent_rev7_2g
b43_nphy_chantab_phy_rev8_radio_rev8[] = {
+ {
+ .freq = 2412,
+ RADIOREGS7_2G(0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0x6c,
+ 0x09, 0x0f, 0x09, 0x07, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f,
0x0443),
+ },
+ {
+ .freq = 2417,
+ RADIOREGS7_2G(0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0x71,
+ 0x09, 0x0f, 0x09, 0x07, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d,
0x0441),
+ },
+ {
+ .freq = 2422,
+ RADIOREGS7_2G(0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0x76,
+ 0x09, 0x0f, 0x09, 0x06, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a,
0x043f),
+ },
+ {
+ .freq = 2427,
+ RADIOREGS7_2G(0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0x7b,
+ 0x09, 0x0f, 0x09, 0x06, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438,
0x043d),
+ },
+ {
+ .freq = 2432,
+ RADIOREGS7_2G(0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0x80,
+ 0x09, 0x0f, 0x09, 0x06, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436,
0x043a),
+ },
+ {
+ .freq = 2437,
+ RADIOREGS7_2G(0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0x85,
+ 0x09, 0x0f, 0x09, 0x06, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434,
0x0438),
+ },
+ {
+ .freq = 2442,
+ RADIOREGS7_2G(0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0x8a,
+ 0x09, 0x0f, 0x08, 0x05, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431,
0x0436),
+ },
+ {
+ .freq = 2447,
+ RADIOREGS7_2G(0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0x8f,
+ 0x09, 0x0f, 0x08, 0x05, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f,
0x0434),
+ },
+ {
+ .freq = 2452,
+ RADIOREGS7_2G(0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0x94,
+ 0x09, 0x0f, 0x08, 0x05, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d,
0x0431),
+ },
+ {
+ .freq = 2457,
+ RADIOREGS7_2G(0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0x99,
+ 0x09, 0x0f, 0x08, 0x05, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b,
0x042f),
+ },
+ {
+ .freq = 2462,
+ RADIOREGS7_2G(0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0x9e,
+ 0x09, 0x0f, 0x08, 0x05, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429,
0x042d),
+ },
+ {
+ .freq = 2467,
+ RADIOREGS7_2G(0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0xa3,
+ 0x09, 0x0f, 0x07, 0x04, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03df, 0x03db, 0x03d7, 0x0422, 0x0427,
0x042b),
+ },
+ {
+ .freq = 2472,
+ RADIOREGS7_2G(0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0xa8,
+ 0x09, 0x0f, 0x07, 0x04, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424,
0x0429),
+ },
+ {
+ .freq = 2484,
+ RADIOREGS7_2G(0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0xb4,
+ 0x09, 0x0f, 0x07, 0x04, 0x61, 0x73,
0xe0, 0x61,
+ 0x73, 0xe0),
+ PHYREGS(0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f,
0x0424),
+ }
+};
+
+
/* Extracted from MMIO dump of 6.30.223.141 */
static const struct b43_nphy_chantabent_rev7
b43_nphy_chantab_phy_rev16_radio_rev9[] = { {
@@ -678,6 +781,9 @@ void r2057_get_chantabent_rev7(struct b43_wldev
*dev, u16 freq, if (phy->radio_rev == 5) {
e_r7_2g = b43_nphy_chantab_phy_rev8_radio_rev5;
len =
ARRAY_SIZE(b43_nphy_chantab_phy_rev8_radio_rev5);
+ } else if (phy->radio_rev == 8) {
+ e_r7_2g = b43_nphy_chantab_phy_rev8_radio_rev8;
+ len =
ARRAY_SIZE(b43_nphy_chantab_phy_rev8_radio_rev8); }
break;
case 16:
--
2.54.0
WARNING: multiple messages have this Message-ID (diff)
From: Alessio Ferri <alessio.ferri@mythread.it>
To: linux-wireless@vger.kernel.org, b43-dev@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 6/7] b43: complete N-PHY rev 8 + radio 2057 rev 8
Date: Sun, 24 May 2026 23:35:43 +0200 [thread overview]
Message-ID: <20260524233543.2ff6b55f@fedora> (raw)
In-Reply-To: <20260524233228.06b38dba@fedora>
Add the 2.4 GHz channel info table for N-PHY rev 8 paired with
radio 2057 rev 8 and wire it to the existing dispatcher in
r2057_get_chantabent_rev7().
The dispatcher's case 8 currently handles radio_rev == 5 only.
For radio_rev == 8 both output pointers stay NULL,
b43_nphy_set_channel() returns an error and channel switch to
the default channel fails.
The new b43_nphy_chantab_phy_rev8_radio_rev8[] is 14 entries
covering the standard 2.4 GHz channel set (2412..2472 in 5 MHz
steps, plus 2484 for channel 14).
Values extracted from an MMIO dump of the proprietary Broadcom wl
driver running on BCM6362 silicon (wl driver 6.30.102.7).
Assisted-by: Claude:claude-4.7-opus
Signed-off-by: Alessio Ferri <alessio.ferri@mythread.it>
---
drivers/net/wireless/broadcom/b43/radio_2057.c | 106
+++++++++++++++++++++++++ 1 file changed, 106 insertions(+)
diff --git a/drivers/net/wireless/broadcom/b43/radio_2057.c
b/drivers/net/wireless/broadcom/b43/radio_2057.c index
9f693d92b..e761f899b 100644 ---
a/drivers/net/wireless/broadcom/b43/radio_2057.c +++
b/drivers/net/wireless/broadcom/b43/radio_2057.c @@ -445,6 +445,109 @@
static const struct b43_nphy_chantabent_rev7_2g
b43_nphy_chantab_phy_rev17_radio }, };
+/* Extracted from MMIO dump of 6.30.102.7 */
+static const struct b43_nphy_chantabent_rev7_2g
b43_nphy_chantab_phy_rev8_radio_rev8[] = {
+ {
+ .freq = 2412,
+ RADIOREGS7_2G(0x48, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0x6c,
+ 0x09, 0x0f, 0x09, 0x07, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03c9, 0x03c5, 0x03c1, 0x043a, 0x043f,
0x0443),
+ },
+ {
+ .freq = 2417,
+ RADIOREGS7_2G(0x4b, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0x71,
+ 0x09, 0x0f, 0x09, 0x07, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03cb, 0x03c7, 0x03c3, 0x0438, 0x043d,
0x0441),
+ },
+ {
+ .freq = 2422,
+ RADIOREGS7_2G(0x4e, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0x76,
+ 0x09, 0x0f, 0x09, 0x06, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03cd, 0x03c9, 0x03c5, 0x0436, 0x043a,
0x043f),
+ },
+ {
+ .freq = 2427,
+ RADIOREGS7_2G(0x52, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0x7b,
+ 0x09, 0x0f, 0x09, 0x06, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03cf, 0x03cb, 0x03c7, 0x0434, 0x0438,
0x043d),
+ },
+ {
+ .freq = 2432,
+ RADIOREGS7_2G(0x55, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0x80,
+ 0x09, 0x0f, 0x09, 0x06, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03d1, 0x03cd, 0x03c9, 0x0431, 0x0436,
0x043a),
+ },
+ {
+ .freq = 2437,
+ RADIOREGS7_2G(0x58, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0x85,
+ 0x09, 0x0f, 0x09, 0x06, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03d3, 0x03cf, 0x03cb, 0x042f, 0x0434,
0x0438),
+ },
+ {
+ .freq = 2442,
+ RADIOREGS7_2G(0x5c, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0x8a,
+ 0x09, 0x0f, 0x08, 0x05, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03d5, 0x03d1, 0x03cd, 0x042d, 0x0431,
0x0436),
+ },
+ {
+ .freq = 2447,
+ RADIOREGS7_2G(0x5f, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0x8f,
+ 0x09, 0x0f, 0x08, 0x05, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03d7, 0x03d3, 0x03cf, 0x042b, 0x042f,
0x0434),
+ },
+ {
+ .freq = 2452,
+ RADIOREGS7_2G(0x62, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0x94,
+ 0x09, 0x0f, 0x08, 0x05, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03d9, 0x03d5, 0x03d1, 0x0429, 0x042d,
0x0431),
+ },
+ {
+ .freq = 2457,
+ RADIOREGS7_2G(0x66, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0x99,
+ 0x09, 0x0f, 0x08, 0x05, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03db, 0x03d7, 0x03d3, 0x0427, 0x042b,
0x042f),
+ },
+ {
+ .freq = 2462,
+ RADIOREGS7_2G(0x69, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0x9e,
+ 0x09, 0x0f, 0x08, 0x05, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03dd, 0x03d9, 0x03d5, 0x0424, 0x0429,
0x042d),
+ },
+ {
+ .freq = 2467,
+ RADIOREGS7_2G(0x6c, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0xa3,
+ 0x09, 0x0f, 0x07, 0x04, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03df, 0x03db, 0x03d7, 0x0422, 0x0427,
0x042b),
+ },
+ {
+ .freq = 2472,
+ RADIOREGS7_2G(0x70, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0xa8,
+ 0x09, 0x0f, 0x07, 0x04, 0x61, 0x73,
0xf0, 0x61,
+ 0x73, 0xf0),
+ PHYREGS(0x03e1, 0x03dd, 0x03d9, 0x0420, 0x0424,
0x0429),
+ },
+ {
+ .freq = 2484,
+ RADIOREGS7_2G(0x78, 0x16, 0x30, 0x1b, 0x0a, 0x0a,
0x30, 0xb4,
+ 0x09, 0x0f, 0x07, 0x04, 0x61, 0x73,
0xe0, 0x61,
+ 0x73, 0xe0),
+ PHYREGS(0x03e6, 0x03e2, 0x03de, 0x041b, 0x041f,
0x0424),
+ }
+};
+
+
/* Extracted from MMIO dump of 6.30.223.141 */
static const struct b43_nphy_chantabent_rev7
b43_nphy_chantab_phy_rev16_radio_rev9[] = { {
@@ -678,6 +781,9 @@ void r2057_get_chantabent_rev7(struct b43_wldev
*dev, u16 freq, if (phy->radio_rev == 5) {
e_r7_2g = b43_nphy_chantab_phy_rev8_radio_rev5;
len =
ARRAY_SIZE(b43_nphy_chantab_phy_rev8_radio_rev5);
+ } else if (phy->radio_rev == 8) {
+ e_r7_2g = b43_nphy_chantab_phy_rev8_radio_rev8;
+ len =
ARRAY_SIZE(b43_nphy_chantab_phy_rev8_radio_rev8); }
break;
case 16:
--
2.54.0
_______________________________________________
b43-dev mailing list
b43-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/b43-dev
next prev parent reply other threads:[~2026-05-24 21:35 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-24 21:32 [PATCH v2 0/7] b43: complete N-PHY rev 8 + radio 2057 rev 8 Alessio Ferri
2026-05-24 21:32 ` Alessio Ferri
2026-05-24 21:33 ` Alessio Ferri
2026-05-24 21:33 ` Alessio Ferri
2026-05-24 21:33 ` Alessio Ferri
2026-05-24 21:33 ` Alessio Ferri
2026-05-24 21:34 ` Alessio Ferri
2026-05-24 21:34 ` Alessio Ferri
2026-05-24 21:34 ` Alessio Ferri
2026-05-24 21:34 ` Alessio Ferri
2026-05-24 21:35 ` Alessio Ferri
2026-05-24 21:35 ` Alessio Ferri
2026-05-24 21:35 ` Alessio Ferri [this message]
2026-05-24 21:35 ` [PATCH v2 6/7] " Alessio Ferri
2026-05-24 21:36 ` [PATCH v2 7/7] " Alessio Ferri
2026-05-24 21:36 ` Alessio Ferri
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=20260524233543.2ff6b55f@fedora \
--to=alessio.ferri@mythread.it \
--cc=b43-dev@lists.infradead.org \
--cc=linux-kernel@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.