mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 09:36:22 +02:00
b43: add IPA TX gain table for N-PHY r8 + radio 2057 r8
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>
Acked-by: Michael Büsch <m@bues.ch>
Reviewed-by: Joshua Peisach <jpeisach@ubuntu.com>
Link: https://patch.msgid.link/20260528-b43_complete_n_phy_rev_8_radio_2057_rev_8_support-v4-5-464566194d47@gmail.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
454518d95d
commit
894f1482b2
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user