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 0/7] b43: complete N-PHY rev 8 + radio 2057 rev 8
Date: Sun, 24 May 2026 23:35:08 +0200 [thread overview]
Message-ID: <20260524233508.03ebe015@fedora> (raw)
In-Reply-To: <20260524233228.06b38dba@fedora>
Add the 2.4 GHz IPA TX gain table for N-PHY rev 8 paired with radio
2057 rev 8 and wire it to the existing dispatcher.
b43_nphy_get_ipa_gain_table() in tables_nphy.c currently handles
case 8 only for radio_rev == 5; radio_rev == 8 falls through and
the function logs:
b43-phyX ERROR: No 2GHz IPA gain table available for this device
b43-phyX ERROR: PHY init: Channel switch to default failed
leaving b43_phy_init() to return an error and core_init to abort
before the MAC is enabled.
The high byte of every entry differs from the rev 5 sibling (0x40
vs 0x30): different PAD-gain code prefix for the rev 8 front-end.
The low 24 bits coincide with rev 5 across the whole table - the
gain step amplitudes are the same, only the PAD-gain selector
prefix changes.
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/tables_nphy.c | 39
+++++++++++++++++++++++++ 1 file changed, 39 insertions(+)
diff --git a/drivers/net/wireless/broadcom/b43/tables_nphy.c
b/drivers/net/wireless/broadcom/b43/tables_nphy.c index
41a25d909..84e8d718d 100644 ---
a/drivers/net/wireless/broadcom/b43/tables_nphy.c +++
b/drivers/net/wireless/broadcom/b43/tables_nphy.c @@ -2715,6 +2715,43
@@ static const u32 b43_ntab_tx_gain_ipa_2057_rev5_2g[] = { 0x300f0715,
0x300f0715, 0x300f0715, 0x300f0715, };
+/* Extracted from MMIO dump of 6.30.102.7 */
+static const u32 b43_ntab_tx_gain_ipa_2057_rev8_2g[] = {
+ 0x40ff0031, 0x40e70031, 0x40e7002e, 0x40cf002e,
+ 0x40bf002e, 0x40af002e, 0x409f002f, 0x407f0033,
+ 0x407f0031, 0x407f002e, 0x4077002e, 0x406f002e,
+ 0x4067002e, 0x405f002f, 0x40570030, 0x4057002d,
+ 0x404f002e, 0x40470031, 0x4047002e, 0x4047002c,
+ 0x40470029, 0x403f002c, 0x403f0029, 0x4037002d,
+ 0x4037002a, 0x40370028, 0x402f002c, 0x402f002a,
+ 0x402f0028, 0x402f0026, 0x4027002c, 0x40270029,
+ 0x40270027, 0x40270025, 0x40270023, 0x401f002c,
+ 0x401f002a, 0x401f0028, 0x401f0025, 0x401f0024,
+ 0x401f0022, 0x401f001f, 0x4017002d, 0x4017002b,
+ 0x40170028, 0x40170026, 0x40170024, 0x40170022,
+ 0x40170020, 0x4017001e, 0x4017001d, 0x4017001b,
+ 0x4017001a, 0x40170018, 0x40170017, 0x40170015,
+ 0x400f002c, 0x400f0029, 0x400f0027, 0x400f0024,
+ 0x400f0022, 0x400f0021, 0x400f001f, 0x400f001d,
+ 0x400f001b, 0x400f001a, 0x400f0018, 0x400f0017,
+ 0x400f0016, 0x400f0015, 0x400f0115, 0x400f0215,
+ 0x400f0315, 0x400f0415, 0x400f0515, 0x400f0615,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+};
+
+
/* Extracted from MMIO dump of 6.30.223.141 */
static const u32 b43_ntab_tx_gain_ipa_2057_rev9_2g[] = {
0x60ff0031, 0x60e7002c, 0x60cf002a, 0x60c70029,
@@ -3651,6 +3688,8 @@ static const u32
*b43_nphy_get_ipa_gain_table(struct b43_wldev *dev) case 8:
if (phy->radio_rev == 5)
return
b43_ntab_tx_gain_ipa_2057_rev5_2g;
+ if (phy->radio_rev == 8)
+ return
b43_ntab_tx_gain_ipa_2057_rev8_2g; break;
case 6:
if (dev->dev->chip_id == BCMA_CHIP_ID_BCM47162)
--
2.54.0
_______________________________________________
b43-dev mailing list
b43-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/b43-dev
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 0/7] b43: complete N-PHY rev 8 + radio 2057 rev 8
Date: Sun, 24 May 2026 23:35:08 +0200 [thread overview]
Message-ID: <20260524233508.03ebe015@fedora> (raw)
In-Reply-To: <20260524233228.06b38dba@fedora>
Add the 2.4 GHz IPA TX gain table for N-PHY rev 8 paired with radio
2057 rev 8 and wire it to the existing dispatcher.
b43_nphy_get_ipa_gain_table() in tables_nphy.c currently handles
case 8 only for radio_rev == 5; radio_rev == 8 falls through and
the function logs:
b43-phyX ERROR: No 2GHz IPA gain table available for this device
b43-phyX ERROR: PHY init: Channel switch to default failed
leaving b43_phy_init() to return an error and core_init to abort
before the MAC is enabled.
The high byte of every entry differs from the rev 5 sibling (0x40
vs 0x30): different PAD-gain code prefix for the rev 8 front-end.
The low 24 bits coincide with rev 5 across the whole table - the
gain step amplitudes are the same, only the PAD-gain selector
prefix changes.
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/tables_nphy.c | 39
+++++++++++++++++++++++++ 1 file changed, 39 insertions(+)
diff --git a/drivers/net/wireless/broadcom/b43/tables_nphy.c
b/drivers/net/wireless/broadcom/b43/tables_nphy.c index
41a25d909..84e8d718d 100644 ---
a/drivers/net/wireless/broadcom/b43/tables_nphy.c +++
b/drivers/net/wireless/broadcom/b43/tables_nphy.c @@ -2715,6 +2715,43
@@ static const u32 b43_ntab_tx_gain_ipa_2057_rev5_2g[] = { 0x300f0715,
0x300f0715, 0x300f0715, 0x300f0715, };
+/* Extracted from MMIO dump of 6.30.102.7 */
+static const u32 b43_ntab_tx_gain_ipa_2057_rev8_2g[] = {
+ 0x40ff0031, 0x40e70031, 0x40e7002e, 0x40cf002e,
+ 0x40bf002e, 0x40af002e, 0x409f002f, 0x407f0033,
+ 0x407f0031, 0x407f002e, 0x4077002e, 0x406f002e,
+ 0x4067002e, 0x405f002f, 0x40570030, 0x4057002d,
+ 0x404f002e, 0x40470031, 0x4047002e, 0x4047002c,
+ 0x40470029, 0x403f002c, 0x403f0029, 0x4037002d,
+ 0x4037002a, 0x40370028, 0x402f002c, 0x402f002a,
+ 0x402f0028, 0x402f0026, 0x4027002c, 0x40270029,
+ 0x40270027, 0x40270025, 0x40270023, 0x401f002c,
+ 0x401f002a, 0x401f0028, 0x401f0025, 0x401f0024,
+ 0x401f0022, 0x401f001f, 0x4017002d, 0x4017002b,
+ 0x40170028, 0x40170026, 0x40170024, 0x40170022,
+ 0x40170020, 0x4017001e, 0x4017001d, 0x4017001b,
+ 0x4017001a, 0x40170018, 0x40170017, 0x40170015,
+ 0x400f002c, 0x400f0029, 0x400f0027, 0x400f0024,
+ 0x400f0022, 0x400f0021, 0x400f001f, 0x400f001d,
+ 0x400f001b, 0x400f001a, 0x400f0018, 0x400f0017,
+ 0x400f0016, 0x400f0015, 0x400f0115, 0x400f0215,
+ 0x400f0315, 0x400f0415, 0x400f0515, 0x400f0615,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+ 0x400f0715, 0x400f0715, 0x400f0715, 0x400f0715,
+};
+
+
/* Extracted from MMIO dump of 6.30.223.141 */
static const u32 b43_ntab_tx_gain_ipa_2057_rev9_2g[] = {
0x60ff0031, 0x60e7002c, 0x60cf002a, 0x60c70029,
@@ -3651,6 +3688,8 @@ static const u32
*b43_nphy_get_ipa_gain_table(struct b43_wldev *dev) case 8:
if (phy->radio_rev == 5)
return
b43_ntab_tx_gain_ipa_2057_rev5_2g;
+ if (phy->radio_rev == 8)
+ return
b43_ntab_tx_gain_ipa_2057_rev8_2g; break;
case 6:
if (dev->dev->chip_id == BCMA_CHIP_ID_BCM47162)
--
2.54.0
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 [this message]
2026-05-24 21:35 ` Alessio Ferri
2026-05-24 21:35 ` [PATCH v2 6/7] " Alessio Ferri
2026-05-24 21:35 ` 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=20260524233508.03ebe015@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.