From nobody Mon May 25 05:58:19 2026 Received: from smtpcmd15176.aruba.it (smtpcmd15176.aruba.it [62.149.156.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D9C3437B02E for ; Sun, 24 May 2026 21:56:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=62.149.156.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779659791; cv=none; b=Efd+QjoXtDlZpW9LKshleTmA0jNEm1CcfoId3NSxKk0HohzY/jNyTmNJrKMiL+W7DhrrXd3tqEfpYkhJB+mGpraz+EDxPKFwCAQKx72RF8Ljo6Nu0RIVQgORLoc3ujhK2+cQPd6CGVPBzH9uauKTCs/pfz8bg8bTJ/9he3OJkBQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779659791; c=relaxed/simple; bh=ihqAdUA3dK4d4sZJzVA0sG91EQtAx2kZHvucSHzv7Lw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To; b=XlpGtSz+XVLG7R2vcWKDUgSj7oWy8mTNecF+v0ZJ8lCjhj4Gn4hdjuANJA19zhS4ZjSV5kICCqkdCHkb7CfGwrhHhDTLdJPdDRZLzNr/FF/otB0i5+mPsU+7qRAcmHcLStSAkF3PfLwp73amT/YulrOjbJXKMVTjP6Pqjnh3KEE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mythread.it; spf=pass smtp.mailfrom=mythread.it; dkim=pass (2048-bit key) header.d=mythread.it header.i=@mythread.it header.b=ae+CkOT3; arc=none smtp.client-ip=62.149.156.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mythread.it Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=mythread.it Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mythread.it header.i=@mythread.it header.b="ae+CkOT3" Received: from [192.168.1.237] ([94.34.125.0]) by Aruba SMTP with ESMTPSA id RGo5wsRmcwf0DRGo5wFEW0; Sun, 24 May 2026 23:56:25 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mythread.it; s=a1; t=1779659785; bh=ihqAdUA3dK4d4sZJzVA0sG91EQtAx2kZHvucSHzv7Lw=; h=From:Date:Subject:MIME-Version:Content-Type:To; b=ae+CkOT3aUfVZKLGXxoA9yOJ9a+vRzFx+lffWE+nAVcM6OBU5rpRtK6ptVQkTggjO f4leT2k/K3d+q04DNlbKI9NAbKUTGkmum/gDVXYJw4cRgvoPplUnxpBZeChhlwGgHs jb/0l1FS1QlcVgeNvVfoCGDrqM1cl8OwnSetlu/ks3GtgGfyGszdFJ2qhWA/usTa6G tORfvdSQHOILlD4OwdT/ueWwSSf9L2i2+MMpaAQJLhMCPhInfT+Kb4nqIx7xXR9qcu hC7T4dM2e4+ote1lGiJunAU8/kBzVbLYLBLNdf/dHO4kMWOWbGNaCAUrbw9zL/ppAr l36wG41PpFEfA== From: Alessio Ferri Date: Sun, 24 May 2026 23:56:18 +0200 Subject: [PATCH v3 1/7] b43: add firmware mappings and remove comments wondering about rev22 initvals Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260524-b43_complete_n_phy_rev_8_radio_2057_rev_8_support-v1-1-cdad2c8526c6@gmail.com> References: <20260524-b43_complete_n_phy_rev_8_radio_2057_rev_8_support-v1-0-cdad2c8526c6@gmail.com> In-Reply-To: <20260524-b43_complete_n_phy_rev_8_radio_2057_rev_8_support-v1-0-cdad2c8526c6@gmail.com> To: linux-wireless@vger.kernel.org, b43-dev@lists.infradead.org, linux-kernel@vger.kernel.org, Alessio Ferri X-Mailer: b4 0.14.3 X-CMAE-Envelope: MS4xfK6e4tZhO5nbXI139+tskn3ZldskwfZS0yAkmZzdcOiRqB5wDe+cpYChzUy/iHFxUhoVp6ah5tm/xaN8TPVJUQrwkYksZlAIe9yIAVsmHrTjgL+TX1og HjWJnTDeXqY/mLXoEZFeQito8onhlhJuL9iHTYF4Y6kr0garwS6/ceTopffj2vVF27c9FcGjybi74l96GO1XPhhFjz0aw5NclsV5DLN9cDKQNey8hPuI9Mr4 xsWV1tci4PZrxsE+vgaHc1n3T2mR59exei4b+jy6mXj8/5tJHWS0S4i0M3oMLhO9ROIqQB6eu5UVlcItQfFfdjQNE/BiBtfF/aKPe3zEtco= Assisted-by: Claude:claude-4.7-opus Signed-off-by: Alessio Ferri --- drivers/net/wireless/broadcom/b43/main.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/broadcom/b43/main.c b/drivers/net/wireles= s/broadcom/b43/main.c index b0e6aeb0b..37c5d9928 100644 --- a/drivers/net/wireless/broadcom/b43/main.c +++ b/drivers/net/wireless/broadcom/b43/main.c @@ -2344,6 +2344,10 @@ static int b43_try_request_fw(struct b43_request_fw_= context *ctx) if (phy->type =3D=3D B43_PHYTYPE_N) filename =3D "ucode16_mimo"; break; + case 22: + if (phy->type =3D=3D B43_PHYTYPE_N) + filename =3D "ucode22_mimo"; + break; case 16 ... 19: if (phy->type =3D=3D B43_PHYTYPE_N) filename =3D "ucode16_mimo"; @@ -2405,7 +2409,9 @@ static int b43_try_request_fw(struct b43_request_fw_c= ontext *ctx) else if (rev =3D=3D 24) filename =3D "n0initvals24"; else if (rev =3D=3D 23) - filename =3D "n0initvals16"; /* What about n0initvals22? */ + filename =3D "n0initvals16"; + else if (rev =3D=3D 22) + filename =3D "n0initvals22"; else if (rev >=3D 16 && rev <=3D 18) filename =3D "n0initvals16"; else if (rev >=3D 11 && rev <=3D 12) @@ -2465,7 +2471,9 @@ static int b43_try_request_fw(struct b43_request_fw_c= ontext *ctx) else if (rev =3D=3D 24) filename =3D "n0bsinitvals24"; else if (rev =3D=3D 23) - filename =3D "n0bsinitvals16"; /* What about n0bsinitvals22? */ + filename =3D "n0bsinitvals16"; + else if (rev =3D=3D 22) + filename =3D "n0bsinitvals22"; else if (rev >=3D 16 && rev <=3D 18) filename =3D "n0bsinitvals16"; else if (rev >=3D 11 && rev <=3D 12) --=20 2.54.0 From nobody Mon May 25 05:58:19 2026 Received: from smtpcmd15176.aruba.it (smtpcmd15176.aruba.it [62.149.156.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F0F5D37B3F1 for ; Sun, 24 May 2026 21:56:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=62.149.156.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779659790; cv=none; b=fMxz+SkURT6imgFp2sUwo8lOVRpnla5DcmHh85RE2HVGg00/Ga0l9odOBYX2RDxLu4HhrXFgFdiaqk6R/MDr+10VLEv+T+zPPPICcA440ZALrlv25arTZDolu9FBc2x/nJxTPg3WPRLfcHh1UVs7nnpxT4I477fn5k58LueiGUw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779659790; c=relaxed/simple; bh=SYIv7H7SpupxdJet3IQpOb3GAjuN7nX15ZBOx75fnxU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To; b=OpDixD3npKd06PczU8a6xH9JTOekYGsGRhQzZq7JcKuUHv3S9ORF1QO/DG36hqhw+v3EzW0UTa7xX1nC/dRMWtKBHrD7l6nQA9mBI88G7B4hPticQA9MkVtCbElNAo6czcCXzlmLUiQq19BjIv41P1XeQYlNq7uKeVZE2TCj86E= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mythread.it; spf=pass smtp.mailfrom=mythread.it; dkim=pass (2048-bit key) header.d=mythread.it header.i=@mythread.it header.b=dSMBt39M; arc=none smtp.client-ip=62.149.156.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mythread.it Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=mythread.it Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mythread.it header.i=@mythread.it header.b="dSMBt39M" Received: from [192.168.1.237] ([94.34.125.0]) by Aruba SMTP with ESMTPSA id RGo5wsRmcwf0DRGo5wFEWC; Sun, 24 May 2026 23:56:25 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mythread.it; s=a1; t=1779659785; bh=SYIv7H7SpupxdJet3IQpOb3GAjuN7nX15ZBOx75fnxU=; h=From:Date:Subject:MIME-Version:Content-Type:To; b=dSMBt39Mea0CwaxBow9Sb07rb8rIcceczo4uGdg8hNVJerH3eS2fDHwT+So70vhe1 AchcwYByfaeHWnho0cR+4viUq8Istsup/d8fVqAgLdl/PT1YzoUjxTgDPfxoNZHNUh qM1k7ebDGlgXTxizY8QRnBzytkfjEjFg+ItlwB+1KpHA3JB7cgBw3i2t9GQZw+hP7q hh3jRmH5Le0IG6Hntp7WPkvHXm+sVj9RZ1aAaI11ODHFHEV8kF6sPWVYafz1Qd3KJq SopGLsT0epIGovkpBdN5XvdGOczGC8ItMCct3e1g0+yvWN0Dud0ZPqU6XF6y224w5+ kC0/k1MPm9bPQ== From: Alessio Ferri Date: Sun, 24 May 2026 23:56:19 +0200 Subject: [PATCH v3 2/7] b43: add d11 core revision 0x16 to id table Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260524-b43_complete_n_phy_rev_8_radio_2057_rev_8_support-v1-2-cdad2c8526c6@gmail.com> References: <20260524-b43_complete_n_phy_rev_8_radio_2057_rev_8_support-v1-0-cdad2c8526c6@gmail.com> In-Reply-To: <20260524-b43_complete_n_phy_rev_8_radio_2057_rev_8_support-v1-0-cdad2c8526c6@gmail.com> To: linux-wireless@vger.kernel.org, b43-dev@lists.infradead.org, linux-kernel@vger.kernel.org, Alessio Ferri X-Mailer: b4 0.14.3 X-CMAE-Envelope: MS4xfK6e4tZhO5nbXI139+tskn3ZldskwfZS0yAkmZzdcOiRqB5wDe+cpYChzUy/iHFxUhoVp6ah5tm/xaN8TPVJUQrwkYksZlAIe9yIAVsmHrTjgL+TX1og HjWJnTDeXqY/mLXoEZFeQito8onhlhJuL9iHTYF4Y6kr0garwS6/ceTopffj2vVF27c9FcGjybi74l96GO1XPhhFjz0aw5NclsV5DLN9cDKQNey8hPuI9Mr4 xsWV1tci4PZrxsE+vgaHc1n3T2mR59exei4b+jy6mXj8/5tJHWS0S4i0M3oMLhO9ROIqQB6eu5UVlcItQfFfdjQNE/BiBtfF/aKPe3zEtco= Add d11 core revision 0x16 (=3D 22) to the b43 bcma device id table. The b43 bcma id table covers d11 revisions 0x11, 0x15, 0x17, 0x18, 0x1C, 0x1D, 0x1E, 0x28 and 0x2A. Revision 0x16 belongs to the same N-PHY family as revisions 0x17 and 0x18 (radio 2057) and needs no new PHY or radio code beyond the radio_rev 8 dispatcher entries added later in this series - only the device id entry is missing. Without it bcma scan enumerates the 802.11 core but no driver binds. The revision is used by the Broadcom BCM6362 single-die integrated 2.4 GHz wireless block found in xDSL SoCs. Assisted-by: Claude:claude-4.7-opus Signed-off-by: Alessio Ferri --- drivers/net/wireless/broadcom/b43/main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/wireless/broadcom/b43/main.c b/drivers/net/wireles= s/broadcom/b43/main.c index 37c5d9928..85ea8fdd9 100644 --- a/drivers/net/wireless/broadcom/b43/main.c +++ b/drivers/net/wireless/broadcom/b43/main.c @@ -117,6 +117,7 @@ MODULE_PARM_DESC(allhwsupport, "Enable support for all = hardware (even it if over static const struct bcma_device_id b43_bcma_tbl[] =3D { BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 0x11, BCMA_ANY_CLASS), BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 0x15, BCMA_ANY_CLASS), + BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 0x16, BCMA_ANY_CLASS), BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 0x17, BCMA_ANY_CLASS), BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 0x18, BCMA_ANY_CLASS), BCMA_CORE(BCMA_MANUF_BCM, BCMA_CORE_80211, 0x1C, BCMA_ANY_CLASS), --=20 2.54.0 From nobody Mon May 25 05:58:19 2026 Received: from smtpcmd15176.aruba.it (smtpcmd15176.aruba.it [62.149.156.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 291A337B3F2 for ; Sun, 24 May 2026 21:56:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=62.149.156.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779659789; cv=none; b=Q0EYZDacIWjbhe2VBWMprr0ktc+NXDJM9lrWPRSNRK2SvV4AFIOg4j5QsHCE29VIIvnaUcU1aujp+P5eshqlEL4pKZiB9RL709Kcz3a8UZ7Rm7XIbtIzyl69tiT8ht/dM+0NdW3FuatMX9fUIH/cjL8cS713hZhbnxIY1bbsorg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779659789; c=relaxed/simple; bh=e/hYjV7INXbX4jjE81sUHqotTmvH3P4OPUaxzlGVb8o=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To; b=dh+DyE6ZKDEijiTpjfoa02HgBWG/AXxb1z/S0gbQbDb6UArwqBVFsp6NEgJ14OO98Uy1kGcMa41rMqfPAzocFS4s7x4QaBZfdH8EF3gQpIhBKhQ/QNDXE4Z9eJ2HP6PI/aEOMgBpT5iH7YXLVUemieLM7dHk0FFExu3JK1MrWhQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mythread.it; spf=pass smtp.mailfrom=mythread.it; dkim=pass (2048-bit key) header.d=mythread.it header.i=@mythread.it header.b=APIeCE/h; arc=none smtp.client-ip=62.149.156.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mythread.it Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=mythread.it Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mythread.it header.i=@mythread.it header.b="APIeCE/h" Received: from [192.168.1.237] ([94.34.125.0]) by Aruba SMTP with ESMTPSA id RGo5wsRmcwf0DRGo5wFEWL; Sun, 24 May 2026 23:56:25 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mythread.it; s=a1; t=1779659785; bh=e/hYjV7INXbX4jjE81sUHqotTmvH3P4OPUaxzlGVb8o=; h=From:Date:Subject:MIME-Version:Content-Type:To; b=APIeCE/hGljhK2AdEk9ZRavDZhq1rbw2O7xexR5hQ5rKJ9uqTfpPGP5BIKLbgfvZ9 c3NkbAVYR5pNpZAK+lj3jAjs/WHsYSjOW4beM39Wzbjcl8xn3/FyHitJU+i9TolB+I mZYBCPc670R1BEoXT+VmRtAQAy4eF/Dl/mKijByc6fVSA/YRVR/ApjMFALdVo32znl pdHgSjZdo2TN4QPGese5AzCxzr4q8rvHMDFN6o62hnXUgWzuTCk3ncT6Wlvdy4Fi5O QpBQDMYjZQuX+xATF7MqECcCNGGd+pa5A5r0ccf1PaW0kJx+C6FVcPP6okZFSzg1Gn TnRpFSpMXjJBQ== From: Alessio Ferri Date: Sun, 24 May 2026 23:56:20 +0200 Subject: [PATCH v3 3/7] b43: route d11 corerev 22 to 24-bit indirect radio access Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260524-b43_complete_n_phy_rev_8_radio_2057_rev_8_support-v1-3-cdad2c8526c6@gmail.com> References: <20260524-b43_complete_n_phy_rev_8_radio_2057_rev_8_support-v1-0-cdad2c8526c6@gmail.com> In-Reply-To: <20260524-b43_complete_n_phy_rev_8_radio_2057_rev_8_support-v1-0-cdad2c8526c6@gmail.com> To: linux-wireless@vger.kernel.org, b43-dev@lists.infradead.org, linux-kernel@vger.kernel.org, Alessio Ferri X-Mailer: b4 0.14.3 X-CMAE-Envelope: MS4xfK6e4tZhO5nbXI139+tskn3ZldskwfZS0yAkmZzdcOiRqB5wDe+cpYChzUy/iHFxUhoVp6ah5tm/xaN8TPVJUQrwkYksZlAIe9yIAVsmHrTjgL+TX1og HjWJnTDeXqY/mLXoEZFeQito8onhlhJuL9iHTYF4Y6kr0garwS6/ceTopffj2vVF27c9FcGjybi74l96GO1XPhhFjz0aw5NclsV5DLN9cDKQNey8hPuI9Mr4 xsWV1tci4PZrxsE+vgaHc1n3T2mR59exei4b+jy6mXj8/5tJHWS0S4i0M3oMLhO9ROIqQB6eu5UVlcItQfFfdjQNE/BiBtfF/aKPe3zEtco= Rev 22 backports the older 802.11 core but pairs it with a radio in the 2057 family, which requires the 24-bit indirect path. With the current dispatch, corerev 22 falls into the legacy 4-wire branch, reads garbage for radio_id, and bails out with -EOPNOTSUPP at the "FOUND UNSUPPORTED RADIO" branch below. brcmsmac handles the same silicon family with the equivalent dispatch in drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/ phy_cmn.c read_radio_reg() and write_radio_reg(): if ((D11REV_GE(pi->sh->corerev, 24)) || (D11REV_IS(pi->sh->corerev, 22) && (pi->pubpi.phy_type !=3D PHY_TYPE_SSN))) { /* radioregaddr / radioregdata (indirect) */ } else { /* phy4waddr / phy4wdatalo (legacy) */ } b43 does not support SSN/SSLPN PHYs - they are rejected earlier in b43_phy_versioning() at the "unsupported PHY type" switch - so just adding the check corerev =3D=3D 22 will do. Assisted-by: Claude:claude-4.7-opus Signed-off-by: Alessio Ferri --- drivers/net/wireless/broadcom/b43/main.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/broadcom/b43/main.c b/drivers/net/wireles= s/broadcom/b43/main.c index 85ea8fdd9..783af26cb 100644 --- a/drivers/net/wireless/broadcom/b43/main.c +++ b/drivers/net/wireless/broadcom/b43/main.c @@ -4563,7 +4563,11 @@ static int b43_phy_versioning(struct b43_wldev *dev) radio_id =3D b43_read16(dev, B43_MMIO_RADIO24_DATA); =20 radio_ver =3D 0; /* Is there version somewhere? */ - } else if (core_rev >=3D 24) { + } else if (core_rev >=3D 24 || core_rev =3D=3D 22) { + /* + * D11 corerev 22 pairs an older 802.11 core with a 2057 + * radio that requires the 24-bit indirect access path. + */ u16 radio24[3]; =20 for (tmp =3D 0; tmp < 3; tmp++) { --=20 2.54.0 From nobody Mon May 25 05:58:19 2026 Received: from smtpcmd15176.aruba.it (smtpcmd15176.aruba.it [62.149.156.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4BB9B37B3F6 for ; Sun, 24 May 2026 21:56:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=62.149.156.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779659790; cv=none; b=FzrdeyVOhoucwbYayBYFo2OkETf7fo0BxTtMrZ05HeaZXHxmZRNJ7/68LaxyO668pUFnlEqwSSdiVxReAQ10Cr7sU2U4doKAOOOE2r+fMoaM2xioaeeF8gRBm3TWtOluCJN9Zx1lFzXiZohCALc4uBe5XUl6O0or10cxdkTWnwg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779659790; c=relaxed/simple; bh=FsH4cG99H4gYCr5gM5sye+EXr+DRDoQ2/hID2egt6EM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To; b=u/k8KqLJ49sQGPjBmU8Ql1d6sYnnNOoDnqVkn0DD1YSVmv9FJi1dMoC4H3/hADD1L6K+h50pKoVPX0UnOZjC3YrviFyDq1GG06TyfPexaHbPYJz7orPpEtoE5hJJDPwYDmPNY4s0itEqtZv09/M3NfaWIiHmgBu76oUdhKMS1jA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mythread.it; spf=pass smtp.mailfrom=mythread.it; dkim=pass (2048-bit key) header.d=mythread.it header.i=@mythread.it header.b=VuSN50nU; arc=none smtp.client-ip=62.149.156.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mythread.it Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=mythread.it Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mythread.it header.i=@mythread.it header.b="VuSN50nU" Received: from [192.168.1.237] ([94.34.125.0]) by Aruba SMTP with ESMTPSA id RGo5wsRmcwf0DRGo5wFEWU; Sun, 24 May 2026 23:56:25 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mythread.it; s=a1; t=1779659785; bh=FsH4cG99H4gYCr5gM5sye+EXr+DRDoQ2/hID2egt6EM=; h=From:Date:Subject:MIME-Version:Content-Type:To; b=VuSN50nUilfUR5TWyqTYAhRyJ+36HsFUzYiR2s06Z7RhtwNKdxZtqjRkElkyGv2Tt 86fTbbyz0NhKOUJI9HmPZYwaYO2DXQnZDHgLVSkZgJN1FWGz4gkf2VTLjjcvtNtXtC LsEYfGYGXxRlxj0Z1rLgA9YIH9BMZfMtgp1pP1BpCnKvmMOLpPpWHEmY7RIs8AA5WM ZcHQvmpJkcPHF5nNXDclefBy7I0OVnm5mWXts628ACurcB9ELmkaDtfmf/swFpftVH qnTudsgaHu6ZJQHTdXj1a0CfD556oYqbyNYUVlyTBzgkn3v0TiPgg1uiCzMXufuMt8 JgtYeKKt79sIQ== From: Alessio Ferri Date: Sun, 24 May 2026 23:56:21 +0200 Subject: [PATCH v3 4/7] b43: support radio 2057 rev 8 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260524-b43_complete_n_phy_rev_8_radio_2057_rev_8_support-v1-4-cdad2c8526c6@gmail.com> References: <20260524-b43_complete_n_phy_rev_8_radio_2057_rev_8_support-v1-0-cdad2c8526c6@gmail.com> In-Reply-To: <20260524-b43_complete_n_phy_rev_8_radio_2057_rev_8_support-v1-0-cdad2c8526c6@gmail.com> To: linux-wireless@vger.kernel.org, b43-dev@lists.infradead.org, linux-kernel@vger.kernel.org, Alessio Ferri X-Mailer: b4 0.14.3 X-CMAE-Envelope: MS4xfK6e4tZhO5nbXI139+tskn3ZldskwfZS0yAkmZzdcOiRqB5wDe+cpYChzUy/iHFxUhoVp6ah5tm/xaN8TPVJUQrwkYksZlAIe9yIAVsmHrTjgL+TX1og HjWJnTDeXqY/mLXoEZFeQito8onhlhJuL9iHTYF4Y6kr0garwS6/ceTopffj2vVF27c9FcGjybi74l96GO1XPhhFjz0aw5NclsV5DLN9cDKQNey8hPuI9Mr4 xsWV1tci4PZrxsE+vgaHc1n3T2mR59exei4b+jy6mXj8/5tJHWS0S4i0M3oMLhO9ROIqQB6eu5UVlcItQfFfdjQNE/BiBtfF/aKPe3zEtco= Add support for radio 2057 revision 8, paired with N-PHY rev 8 on the Broadcom BCM6362 single-die integrated 2.4 GHz wireless block. Three correlated changes are needed for the same chip: - main.c: the radio_rev allow-list under B43_PHYTYPE_N currently accepts radio 2057 revisions 9 and 14 only; extend to include rev 8. - radio_2057.c: the existing r2057_rev8_init[] is a 54-entry stub declared inside a TODO comment block and never referenced from r2057_upload_inittabs(). Replace it with the full 412-entry register set actually programmed by the proprietary Broadcom wl driver on this radio. I couldn't find the origin of the original 54-entry stub - 8 of its entries do not appear at all in the rev 8 register set and 7 more carry different values. Loading it instead of using the real table leaves the radio hanging producing a "Microcode not responding" timeout. - radio_2057.c: r2057_upload_inittabs() case 8 handles radio_rev 5 and 7 only; add the radio_rev =3D=3D 8 branch pointing at the new table. The init table is extracted from an MMIO dump of the radio register set programmed during proprietary driver initialisation on BCM6362 silicon (Broadcom wl driver 6.30.102.7). Assisted-by: Claude:claude-4.7-opus Signed-off-by: Alessio Ferri --- drivers/net/wireless/broadcom/b43/main.c | 3 +- drivers/net/wireless/broadcom/b43/radio_2057.c | 124 +++++++++++++++++++++= ---- 2 files changed, 110 insertions(+), 17 deletions(-) diff --git a/drivers/net/wireless/broadcom/b43/main.c b/drivers/net/wireles= s/broadcom/b43/main.c index 783af26cb..817448e58 100644 --- a/drivers/net/wireless/broadcom/b43/main.c +++ b/drivers/net/wireless/broadcom/b43/main.c @@ -4617,7 +4617,8 @@ static int b43_phy_versioning(struct b43_wldev *dev) radio_id !=3D 0x2057) unsupported =3D 1; if (radio_id =3D=3D 0x2057 && - !(radio_rev =3D=3D 9 || radio_rev =3D=3D 14)) + !(radio_rev =3D=3D 8 || radio_rev =3D=3D 9 || + radio_rev =3D=3D 14)) unsupported =3D 1; break; case B43_PHYTYPE_LP: diff --git a/drivers/net/wireless/broadcom/b43/radio_2057.c b/drivers/net/w= ireless/broadcom/b43/radio_2057.c index bd7dafb56..9f693d92b 100644 --- a/drivers/net/wireless/broadcom/b43/radio_2057.c +++ b/drivers/net/wireless/broadcom/b43/radio_2057.c @@ -73,24 +73,112 @@ static u16 r2057_rev7_init[][2] =3D { { 0x1B7, 0x05 }, { 0x1C2, 0xa0 }, }; =20 -/* TODO: Which devices should use it? +/* Extracted from MMIO dump of 6.30.102.7 */ static u16 r2057_rev8_init[][2] =3D { - { 0x00, 0x08 }, { 0x01, 0x57 }, { 0x02, 0x20 }, { 0x31, 0x00 }, - { 0x32, 0x00 }, { 0x33, 0x00 }, { 0x51, 0x70 }, { 0x59, 0x88 }, - { 0x5C, 0x20 }, { 0x62, 0x33 }, { 0x63, 0x0f }, { 0x64, 0x0f }, - { 0x6E, 0x58 }, { 0x75, 0x13 }, { 0x7B, 0x13 }, { 0x7C, 0x0f }, - { 0x7D, 0xee }, { 0x81, 0x01 }, { 0x91, 0x3f }, { 0x92, 0x36 }, - { 0xA1, 0x20 }, { 0xC9, 0x01 }, { 0xD6, 0x70 }, { 0xDE, 0x88 }, - { 0xE1, 0x20 }, { 0xE8, 0x0f }, { 0xE9, 0x0f }, { 0xF3, 0x58 }, - { 0xFA, 0x13 }, { 0x100, 0x13 }, { 0x101, 0x0f }, { 0x102, 0xee }, - { 0x106, 0x01 }, { 0x116, 0x3f }, { 0x117, 0x36 }, { 0x126, 0x20 }, - { 0x14E, 0x01 }, { 0x15E, 0x00 }, { 0x15F, 0x00 }, { 0x160, 0x00 }, - { 0x161, 0x00 }, { 0x162, 0x00 }, { 0x163, 0x00 }, { 0x16A, 0x00 }, - { 0x16B, 0x00 }, { 0x16C, 0x00 }, { 0x1A4, 0x00 }, { 0x1A5, 0x00 }, - { 0x1A6, 0x00 }, { 0x1AA, 0x00 }, { 0x1AB, 0x00 }, { 0x1AC, 0x00 }, - { 0x1B7, 0x05 }, { 0x1C2, 0xa0 }, + { 0x0000, 0x0008 }, { 0x0001, 0x0057 }, { 0x0002, 0x0020 }, { 0x0003, 0x0= 01f }, + { 0x0004, 0x0004 }, { 0x0005, 0x0002 }, { 0x0006, 0x0001 }, { 0x0007, 0x0= 001 }, + { 0x0008, 0x0001 }, { 0x0009, 0x0069 }, { 0x000a, 0x0066 }, { 0x000b, 0x0= 006 }, + { 0x000c, 0x0018 }, { 0x000d, 0x0003 }, { 0x000e, 0x0020 }, { 0x000f, 0x0= 020 }, + { 0x0010, 0x0000 }, { 0x0011, 0x007c }, { 0x0012, 0x0042 }, { 0x0013, 0x0= 0bd }, + { 0x0014, 0x0007 }, { 0x0015, 0x0087 }, { 0x0016, 0x0008 }, { 0x0017, 0x0= 017 }, + { 0x0018, 0x0007 }, { 0x0019, 0x0000 }, { 0x001a, 0x0002 }, { 0x001b, 0x0= 013 }, + { 0x001c, 0x003e }, { 0x001d, 0x003e }, { 0x001e, 0x0096 }, { 0x001f, 0x0= 004 }, + { 0x0020, 0x0000 }, { 0x0021, 0x0000 }, { 0x0022, 0x0017 }, { 0x0023, 0x0= 006 }, + { 0x0024, 0x0001 }, { 0x0025, 0x0006 }, { 0x0026, 0x0004 }, { 0x0027, 0x0= 00d }, + { 0x0028, 0x000d }, { 0x0029, 0x0030 }, { 0x002a, 0x0032 }, { 0x002b, 0x0= 008 }, + { 0x002c, 0x001c }, { 0x002d, 0x0002 }, { 0x002e, 0x0004 }, { 0x002f, 0x0= 07f }, + { 0x0030, 0x0027 }, { 0x0031, 0x0000 }, { 0x0032, 0x0000 }, { 0x0033, 0x0= 000 }, + { 0x0034, 0x0000 }, { 0x0035, 0x0020 }, { 0x0036, 0x0018 }, { 0x0037, 0x0= 007 }, + { 0x0038, 0x0066 }, { 0x0039, 0x0066 }, { 0x003a, 0x0066 }, { 0x003b, 0x0= 066 }, + { 0x003c, 0x00ff }, { 0x003d, 0x00ff }, { 0x003e, 0x00ff }, { 0x003f, 0x0= 0ff }, + { 0x0040, 0x0016 }, { 0x0041, 0x0007 }, { 0x0042, 0x0029 }, { 0x0043, 0x0= 007 }, + { 0x0044, 0x0006 }, { 0x0045, 0x0003 }, { 0x0046, 0x0001 }, { 0x0047, 0x0= 007 }, + { 0x0048, 0x0088 }, { 0x0049, 0x0005 }, { 0x004a, 0x0077 }, { 0x004b, 0x0= 066 }, + { 0x004c, 0x0066 }, { 0x004d, 0x0000 }, { 0x004e, 0x0004 }, { 0x004f, 0x0= 00c }, + { 0x0050, 0x0000 }, { 0x0051, 0x0070 }, { 0x0056, 0x0007 }, { 0x0057, 0x0= 000 }, + { 0x0058, 0x0000 }, { 0x0059, 0x0088 }, { 0x005a, 0x0000 }, { 0x005b, 0x0= 01f }, + { 0x005c, 0x0020 }, { 0x005d, 0x0001 }, { 0x005e, 0x0030 }, { 0x005f, 0x0= 070 }, + { 0x0060, 0x0000 }, { 0x0061, 0x0000 }, { 0x0062, 0x0033 }, { 0x0063, 0x0= 00f }, + { 0x0064, 0x0013 }, { 0x0065, 0x0000 }, { 0x0066, 0x00ee }, { 0x0069, 0x0= 000 }, + { 0x006a, 0x007e }, { 0x006b, 0x003f }, { 0x006c, 0x007f }, { 0x006d, 0x0= 078 }, + { 0x006e, 0x0058 }, { 0x006f, 0x0088 }, { 0x0070, 0x0008 }, { 0x0071, 0x0= 00f }, + { 0x0072, 0x00bc }, { 0x0073, 0x0008 }, { 0x0074, 0x0060 }, { 0x0075, 0x0= 01a }, + { 0x0076, 0x0070 }, { 0x0077, 0x0000 }, { 0x0078, 0x0000 }, { 0x0079, 0x0= 000 }, + { 0x007a, 0x0033 }, { 0x007b, 0x001a }, { 0x007c, 0x0014 }, { 0x007d, 0x0= 0ee }, + { 0x0080, 0x003c }, { 0x0081, 0x0001 }, { 0x0082, 0x000a }, { 0x0083, 0x0= 09d }, + { 0x0084, 0x000a }, { 0x0085, 0x0000 }, { 0x0086, 0x0040 }, { 0x0087, 0x0= 040 }, + { 0x0088, 0x0088 }, { 0x0089, 0x0010 }, { 0x008a, 0x00f0 }, { 0x008b, 0x0= 010 }, + { 0x008c, 0x00f0 }, { 0x008d, 0x0000 }, { 0x008e, 0x0000 }, { 0x008f, 0x0= 010 }, + { 0x0090, 0x0055 }, { 0x0091, 0x003f }, { 0x0092, 0x0036 }, { 0x0093, 0x0= 000 }, + { 0x0094, 0x0000 }, { 0x0095, 0x0000 }, { 0x0096, 0x0087 }, { 0x0097, 0x0= 011 }, + { 0x0098, 0x0000 }, { 0x0099, 0x0033 }, { 0x009a, 0x0088 }, { 0x009b, 0x0= 000 }, + { 0x009c, 0x0087 }, { 0x009d, 0x0011 }, { 0x009e, 0x0000 }, { 0x009f, 0x0= 033 }, + { 0x00a0, 0x0088 }, { 0x00a1, 0x0020 }, { 0x00a2, 0x003f }, { 0x00a3, 0x0= 044 }, + { 0x00a4, 0x008c }, { 0x00a5, 0x006c }, { 0x00a6, 0x0022 }, { 0x00a7, 0x0= 0be }, + { 0x00a8, 0x0055 }, { 0x00aa, 0x000c }, { 0x00ab, 0x00aa }, { 0x00ac, 0x0= 002 }, + { 0x00ad, 0x0000 }, { 0x00ae, 0x0010 }, { 0x00af, 0x0001 }, { 0x00b0, 0x0= 000 }, + { 0x00b1, 0x0000 }, { 0x00b2, 0x0080 }, { 0x00b3, 0x0060 }, { 0x00b4, 0x0= 044 }, + { 0x00b5, 0x0055 }, { 0x00b6, 0x0001 }, { 0x00b7, 0x0055 }, { 0x00b8, 0x0= 001 }, + { 0x00b9, 0x0005 }, { 0x00ba, 0x0055 }, { 0x00bb, 0x0055 }, { 0x00c1, 0x0= 000 }, + { 0x00c2, 0x0000 }, { 0x00c3, 0x0000 }, { 0x00c4, 0x0000 }, { 0x00c5, 0x0= 000 }, + { 0x00c6, 0x0000 }, { 0x00c7, 0x0000 }, { 0x00c8, 0x0000 }, { 0x00c9, 0x0= 001 }, + { 0x00ca, 0x0000 }, { 0x00cb, 0x0000 }, { 0x00cc, 0x0000 }, { 0x00cd, 0x0= 000 }, + { 0x00ce, 0x005e }, { 0x00cf, 0x000c }, { 0x00d0, 0x000c }, { 0x00d1, 0x0= 00c }, + { 0x00d2, 0x0000 }, { 0x00d3, 0x002b }, { 0x00d4, 0x000c }, { 0x00d5, 0x0= 000 }, + { 0x00d6, 0x0070 }, { 0x00db, 0x0007 }, { 0x00dc, 0x0000 }, { 0x00dd, 0x0= 000 }, + { 0x00de, 0x0088 }, { 0x00df, 0x0000 }, { 0x00e0, 0x001f }, { 0x00e1, 0x0= 020 }, + { 0x00e2, 0x0001 }, { 0x00e3, 0x0030 }, { 0x00e4, 0x0070 }, { 0x00e5, 0x0= 000 }, + { 0x00e6, 0x0000 }, { 0x00e7, 0x0033 }, { 0x00e8, 0x000f }, { 0x00e9, 0x0= 013 }, + { 0x00ea, 0x0000 }, { 0x00eb, 0x00ee }, { 0x00ee, 0x0000 }, { 0x00ef, 0x0= 07e }, + { 0x00f0, 0x003f }, { 0x00f1, 0x007f }, { 0x00f2, 0x0078 }, { 0x00f3, 0x0= 058 }, + { 0x00f4, 0x0088 }, { 0x00f5, 0x0008 }, { 0x00f6, 0x000f }, { 0x00f7, 0x0= 0bc }, + { 0x00f8, 0x0008 }, { 0x00f9, 0x0060 }, { 0x00fa, 0x001a }, { 0x00fb, 0x0= 070 }, + { 0x00fc, 0x0000 }, { 0x00fd, 0x0000 }, { 0x00fe, 0x0000 }, { 0x00ff, 0x0= 033 }, + { 0x0100, 0x001a }, { 0x0101, 0x0014 }, { 0x0102, 0x00ee }, { 0x0105, 0x0= 03c }, + { 0x0106, 0x0001 }, { 0x0107, 0x000a }, { 0x0108, 0x009d }, { 0x0109, 0x0= 00a }, + { 0x010a, 0x0000 }, { 0x010b, 0x0040 }, { 0x010c, 0x0040 }, { 0x010d, 0x0= 088 }, + { 0x010e, 0x0010 }, { 0x010f, 0x00f0 }, { 0x0110, 0x0010 }, { 0x0111, 0x0= 0f0 }, + { 0x0112, 0x0000 }, { 0x0113, 0x0000 }, { 0x0114, 0x0010 }, { 0x0115, 0x0= 055 }, + { 0x0116, 0x003f }, { 0x0117, 0x0036 }, { 0x0118, 0x0000 }, { 0x0119, 0x0= 000 }, + { 0x011a, 0x0000 }, { 0x011b, 0x0087 }, { 0x011c, 0x0011 }, { 0x011d, 0x0= 000 }, + { 0x011e, 0x0033 }, { 0x011f, 0x0088 }, { 0x0120, 0x0000 }, { 0x0121, 0x0= 087 }, + { 0x0122, 0x0011 }, { 0x0123, 0x0000 }, { 0x0124, 0x0033 }, { 0x0125, 0x0= 088 }, + { 0x0126, 0x0020 }, { 0x0127, 0x003f }, { 0x0128, 0x0044 }, { 0x0129, 0x0= 08c }, + { 0x012a, 0x006c }, { 0x012b, 0x0022 }, { 0x012c, 0x00be }, { 0x012d, 0x0= 055 }, + { 0x012f, 0x000c }, { 0x0130, 0x00aa }, { 0x0131, 0x0002 }, { 0x0132, 0x0= 000 }, + { 0x0133, 0x0010 }, { 0x0134, 0x0001 }, { 0x0135, 0x0000 }, { 0x0136, 0x0= 000 }, + { 0x0137, 0x0080 }, { 0x0138, 0x0060 }, { 0x0139, 0x0044 }, { 0x013a, 0x0= 055 }, + { 0x013b, 0x0001 }, { 0x013c, 0x0055 }, { 0x013d, 0x0001 }, { 0x013e, 0x0= 005 }, + { 0x013f, 0x0055 }, { 0x0140, 0x0055 }, { 0x0146, 0x0000 }, { 0x0147, 0x0= 000 }, + { 0x0148, 0x0000 }, { 0x0149, 0x0000 }, { 0x014a, 0x0000 }, { 0x014b, 0x0= 000 }, + { 0x014c, 0x0000 }, { 0x014d, 0x0000 }, { 0x014e, 0x0001 }, { 0x014f, 0x0= 000 }, + { 0x0150, 0x0000 }, { 0x0151, 0x0000 }, { 0x0154, 0x000c }, { 0x0155, 0x0= 00c }, + { 0x0156, 0x000c }, { 0x0157, 0x0000 }, { 0x0158, 0x002b }, { 0x0159, 0x0= 084 }, + { 0x015a, 0x0015 }, { 0x015b, 0x000f }, { 0x015c, 0x0000 }, { 0x015d, 0x0= 000 }, + { 0x015e, 0x0000 }, { 0x015f, 0x0000 }, { 0x0160, 0x0000 }, { 0x0161, 0x0= 000 }, + { 0x0162, 0x0000 }, { 0x0163, 0x0000 }, { 0x0164, 0x0000 }, { 0x0165, 0x0= 000 }, + { 0x0166, 0x0000 }, { 0x0167, 0x0000 }, { 0x0168, 0x0000 }, { 0x0169, 0x0= 000 }, + { 0x016a, 0x0000 }, { 0x016b, 0x0000 }, { 0x016c, 0x0000 }, { 0x016d, 0x0= 000 }, + { 0x0170, 0x0000 }, { 0x0171, 0x0077 }, { 0x0172, 0x0077 }, { 0x0173, 0x0= 077 }, + { 0x0174, 0x0077 }, { 0x0175, 0x0000 }, { 0x0176, 0x0003 }, { 0x0177, 0x0= 037 }, + { 0x0178, 0x0003 }, { 0x0179, 0x0000 }, { 0x017a, 0x0021 }, { 0x017b, 0x0= 002 }, + { 0x017c, 0x0000 }, { 0x017d, 0x00aa }, { 0x017e, 0x0000 }, { 0x017f, 0x0= 0aa }, + { 0x0180, 0x0000 }, { 0x0190, 0x0000 }, { 0x0191, 0x0077 }, { 0x0192, 0x0= 077 }, + { 0x0193, 0x0077 }, { 0x0194, 0x0077 }, { 0x0195, 0x0000 }, { 0x0196, 0x0= 003 }, + { 0x0197, 0x0037 }, { 0x0198, 0x0003 }, { 0x0199, 0x0000 }, { 0x019a, 0x0= 021 }, + { 0x019b, 0x0002 }, { 0x019c, 0x0000 }, { 0x019d, 0x00aa }, { 0x019e, 0x0= 000 }, + { 0x019f, 0x00aa }, { 0x01a0, 0x0000 }, { 0x01a1, 0x0002 }, { 0x01a2, 0x0= 00f }, + { 0x01a3, 0x000f }, { 0x01a4, 0x0000 }, { 0x01a5, 0x0000 }, { 0x01a6, 0x0= 000 }, + { 0x01a7, 0x0002 }, { 0x01a8, 0x000f }, { 0x01a9, 0x000f }, { 0x01aa, 0x0= 000 }, + { 0x01ab, 0x0000 }, { 0x01ac, 0x0000 }, { 0x01ad, 0x0084 }, { 0x01ae, 0x0= 060 }, + { 0x01af, 0x0047 }, { 0x01b0, 0x0047 }, { 0x01b1, 0x0000 }, { 0x01b2, 0x0= 000 }, + { 0x01b3, 0x0000 }, { 0x01b4, 0x0000 }, { 0x01b5, 0x0000 }, { 0x01b6, 0x0= 000 }, + { 0x01b7, 0x0005 }, { 0x01b8, 0x0000 }, { 0x01b9, 0x0000 }, { 0x01ba, 0x0= 000 }, + { 0x01bb, 0x0000 }, { 0x01bc, 0x0000 }, { 0x01bd, 0x0000 }, { 0x01be, 0x0= 000 }, + { 0x01bf, 0x0000 }, { 0x01c0, 0x0000 }, { 0x01c1, 0x0000 }, { 0x01c2, 0x0= 0a0 }, + { 0x01c3, 0x0000 }, { 0x01c4, 0x0000 }, { 0x01c5, 0x0000 }, { 0x01c6, 0x0= 000 }, + { 0x01c7, 0x0000 }, { 0x01c8, 0x0000 }, { 0x01c9, 0x0000 }, { 0x01ca, 0x0= 000 }, }; -*/ =20 /* Extracted from MMIO dump of 6.30.223.141 */ static u16 r2057_rev9_init[][2] =3D { @@ -539,6 +627,10 @@ void r2057_upload_inittabs(struct b43_wldev *dev) } else if (phy->radio_rev =3D=3D 7) { table =3D r2057_rev7_init[0]; size =3D ARRAY_SIZE(r2057_rev7_init); + } else if (phy->radio_rev =3D=3D 8) { + /* BCM6362 single-die 2.4 GHz. */ + table =3D r2057_rev8_init[0]; + size =3D ARRAY_SIZE(r2057_rev8_init); } break; case 9: --=20 2.54.0 From nobody Mon May 25 05:58:19 2026 Received: from smtpcmd15176.aruba.it (smtpcmd15176.aruba.it [62.149.156.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6717F37B415 for ; Sun, 24 May 2026 21:56:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=62.149.156.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779659790; cv=none; b=PBrrDapMLkMhwW8HLhdRCcz+ODlSGFGivCZCH5uWGTsdwc57JRjkp7X0HHliSx+kEPO7bmuU0CvWmlR++QcTO5kunfzXiTq1vdN7Mn4qvEGQg/irUHxEjTLYcvyb7mOPW/CBtcGi7+IrKPxaP5F2vjYk5EvcSbp/PwhrSFjzEAk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779659790; c=relaxed/simple; bh=nU0wzFaFhsFBD4bQKqEatdtCZlYs7XpG5eZEIAlIdTg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To; b=DzVHr50/HX9vY6lvvIviG97WTMH1nJpXaFTVWvtGhlgq+m4+YTcff6YooUCp83rKnIP03uupoS7+fyExi5Abonmhlx2nlbUelTpCAdsgqwu8mg7VZ/qyIk+sWQB9Q2ZyP4DyLGSGcJfMyhMx6jcLH8HhPLVEfAboLDo3VxqrAyE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mythread.it; spf=pass smtp.mailfrom=mythread.it; dkim=pass (2048-bit key) header.d=mythread.it header.i=@mythread.it header.b=TPn2pAE+; arc=none smtp.client-ip=62.149.156.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mythread.it Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=mythread.it Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mythread.it header.i=@mythread.it header.b="TPn2pAE+" Received: from [192.168.1.237] ([94.34.125.0]) by Aruba SMTP with ESMTPSA id RGo5wsRmcwf0DRGo5wFEWf; Sun, 24 May 2026 23:56:26 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mythread.it; s=a1; t=1779659786; bh=nU0wzFaFhsFBD4bQKqEatdtCZlYs7XpG5eZEIAlIdTg=; h=From:Date:Subject:MIME-Version:Content-Type:To; b=TPn2pAE+hSuwnqo6kRfuijsMIehYI4lhis3eHaxBOXkuj2P5iDXZgz9EqnIXjxSdi NVy26GtLrwZELTCwg7KpYbHsugyiGNr4DrLxZYRi0UPwWkUYotIx1RVeH5V5n6w7xC nUajNLDb65/bCwxsDGY7OH9zpDrna1abwWgAOER7ESJaPc9iZcPLq38zkrurxn9Xxa /hMJ5kjEBV02mfqP6H0I87Auqxf+zU0XxmIuvyL6z1FGEgbu6zQGyYObXvGJBiDTfW oahKtn34eKCepwgFc9nIKL4h49muwGJE4+heJYF9j8KvLIlVGtb7oG/VC4Pt3v/vpM biy9x/ThAeuQA== From: Alessio Ferri Date: Sun, 24 May 2026 23:56:22 +0200 Subject: [PATCH v3 5/7] b43: add IPA TX gain table for N-PHY r8 + radio 2057 r8 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260524-b43_complete_n_phy_rev_8_radio_2057_rev_8_support-v1-5-cdad2c8526c6@gmail.com> References: <20260524-b43_complete_n_phy_rev_8_radio_2057_rev_8_support-v1-0-cdad2c8526c6@gmail.com> In-Reply-To: <20260524-b43_complete_n_phy_rev_8_radio_2057_rev_8_support-v1-0-cdad2c8526c6@gmail.com> To: linux-wireless@vger.kernel.org, b43-dev@lists.infradead.org, linux-kernel@vger.kernel.org, Alessio Ferri X-Mailer: b4 0.14.3 X-CMAE-Envelope: MS4xfA68BqaCkARgcDeF0kZ2UFl6SNlLG18wR+LQBV8qIB0LCxYN2/+rkKbov4N3NO6Mo6TWpaUKQz03uo0SF2PaeQYV16MzNF3ra8jTW86kg0CPBytWRzkp d8c2s4TVdBqBsWRw5aLGzkJ3ZMRxJn3QM6dOF/m1Z5un74VmOQoq5Fy0PtdOwp2ANnPjutzDk0UQCpQ9R73Z457QW7EuxL0C9LiMnROBOBTI0NLDNzutxWX7 ejqX4QxUgegJG5GxuGyf2tfV2PUtuuNnd/IKPSECMhigZ/KnIfgFE/CruilI8wRTeJ4JjtNNb0IrIpHMupqlknExVmWS8fMZ9EPIYzusd3E= 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 =3D=3D 5; radio_rev =3D=3D 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 --- 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[]= =3D { 0x300f0715, 0x300f0715, 0x300f0715, 0x300f0715, }; =20 +/* Extracted from MMIO dump of 6.30.102.7 */ +static const u32 b43_ntab_tx_gain_ipa_2057_rev8_2g[] =3D { + 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[] =3D { 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 =3D=3D 5) return b43_ntab_tx_gain_ipa_2057_rev5_2g; + if (phy->radio_rev =3D=3D 8) + return b43_ntab_tx_gain_ipa_2057_rev8_2g; break; case 6: if (dev->dev->chip_id =3D=3D BCMA_CHIP_ID_BCM47162) --=20 2.54.0 From nobody Mon May 25 05:58:19 2026 Received: from smtpcmd15176.aruba.it (smtpcmd15176.aruba.it [62.149.156.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C3F5437BE64 for ; Sun, 24 May 2026 21:56:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=62.149.156.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779659790; cv=none; b=L4Xgu7rymWwZpPXV3NiTzJeC55e3HtqvZWLh/veMCfrbpgedAORWPAMk8GF2cc4nH3elT4EQnBzzr7SyPY9RL3IrzY7PFPM27pGbvMqnVG1qEkoqMvMdAr7wUa3wrNFfa/GRvNJTPWFQHnrjfJ3tSlG47F10JjDRICTRyvtPwig= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779659790; c=relaxed/simple; bh=7U2VRrCjLV3YsP3PE4UZxyswXXGxQcG+dcQvS3dsOgs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To; b=D3PP6T1XV8IQcTjbZfiGaPAKICPZ5pGM27jHf6TCOdzJwj/qM7GBv22TezR+uIRNGr5w+XFAuQNoRJxIqSlanf9vZCmU06hewBVmD+3LwpsgIUCZ5b7wujMZfTAWYyx44WbgOCdbYCR2EWwSv1TtFMHw9ttBfsDQ/+OkZGOhmzY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mythread.it; spf=pass smtp.mailfrom=mythread.it; dkim=pass (2048-bit key) header.d=mythread.it header.i=@mythread.it header.b=SXlaOtn0; arc=none smtp.client-ip=62.149.156.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mythread.it Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=mythread.it Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mythread.it header.i=@mythread.it header.b="SXlaOtn0" Received: from [192.168.1.237] ([94.34.125.0]) by Aruba SMTP with ESMTPSA id RGo5wsRmcwf0DRGo6wFEWp; Sun, 24 May 2026 23:56:26 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mythread.it; s=a1; t=1779659786; bh=7U2VRrCjLV3YsP3PE4UZxyswXXGxQcG+dcQvS3dsOgs=; h=From:Date:Subject:MIME-Version:Content-Type:To; b=SXlaOtn04CdzBea/JCHPQq0IPKs3bITjiTwNOIE5FfrcYkAf3ElIdwnij0hEq2jWn dSav6jWoXnZ8OIGVxTmBPH08UjSfHqxN0tJ2S1bapq7mm3uGt+M3B4I7dHBVejtvnd VLM74gXeNowG4DuYEQOmZLq4xYtGrmjQkHXog8YwZrZJoAm9yeJlnHaMZdn7uKGScT 5iIrYlDrk5xt/xTJ3RK9857btipJV3ldCdQ+Lh9Fm7LXrDxH0jpkCrXcL3zHlcyx3T +l7KhMfrTrRx70G+Tr6I52AuPYZp0Dp/9H+in1gh8NWPS6DEgVn0hjHyi7OSoW0Lph wvvf9p8HyHwVA== From: Alessio Ferri Date: Sun, 24 May 2026 23:56:23 +0200 Subject: [PATCH v3 6/7] b43: add channel info table for N-PHY r8 + radio 2057 r8 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260524-b43_complete_n_phy_rev_8_radio_2057_rev_8_support-v1-6-cdad2c8526c6@gmail.com> References: <20260524-b43_complete_n_phy_rev_8_radio_2057_rev_8_support-v1-0-cdad2c8526c6@gmail.com> In-Reply-To: <20260524-b43_complete_n_phy_rev_8_radio_2057_rev_8_support-v1-0-cdad2c8526c6@gmail.com> To: linux-wireless@vger.kernel.org, b43-dev@lists.infradead.org, linux-kernel@vger.kernel.org, Alessio Ferri X-Mailer: b4 0.14.3 X-CMAE-Envelope: MS4xfA68BqaCkARgcDeF0kZ2UFl6SNlLG18wR+LQBV8qIB0LCxYN2/+rkKbov4N3NO6Mo6TWpaUKQz03uo0SF2PaeQYV16MzNF3ra8jTW86kg0CPBytWRzkp d8c2s4TVdBqBsWRw5aLGzkJ3ZMRxJn3QM6dOF/m1Z5un74VmOQoq5Fy0PtdOwp2ANnPjutzDk0UQCpQ9R73Z457QW7EuxL0C9LiMnROBOBTI0NLDNzutxWX7 ejqX4QxUgegJG5GxuGyf2tfV2PUtuuNnd/IKPSECMhigZ/KnIfgFE/CruilI8wRTeJ4JjtNNb0IrIpHMupqlknExVmWS8fMZ9EPIYzusd3E= 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 =3D=3D 5 only. For radio_rev =3D=3D 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 --- 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/w= ireless/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_n= phy_chantab_phy_rev17_radio }, }; =20 +/* Extracted from MMIO dump of 6.30.102.7 */ +static const struct b43_nphy_chantabent_rev7_2g b43_nphy_chantab_phy_rev8_= radio_rev8[] =3D { + { + .freq =3D 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 =3D 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 =3D 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 =3D 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 =3D 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 =3D 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 =3D 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 =3D 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 =3D 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 =3D 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 =3D 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 =3D 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 =3D 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 =3D 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_ra= dio_rev9[] =3D { { @@ -678,6 +781,9 @@ void r2057_get_chantabent_rev7(struct b43_wldev *dev, u= 16 freq, if (phy->radio_rev =3D=3D 5) { e_r7_2g =3D b43_nphy_chantab_phy_rev8_radio_rev5; len =3D ARRAY_SIZE(b43_nphy_chantab_phy_rev8_radio_rev5); + } else if (phy->radio_rev =3D=3D 8) { + e_r7_2g =3D b43_nphy_chantab_phy_rev8_radio_rev8; + len =3D ARRAY_SIZE(b43_nphy_chantab_phy_rev8_radio_rev8); } break; case 16: --=20 2.54.0 From nobody Mon May 25 05:58:19 2026 Received: from smtpcmd15176.aruba.it (smtpcmd15176.aruba.it [62.149.156.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D09C337BE65 for ; Sun, 24 May 2026 21:56:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=62.149.156.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779659790; cv=none; b=ob+55xrEXSoSDO3gzv6P9CY+1ZJvChLtHrFQIvAInFM7rrg2hHuS0PaZ3ZJafHWuMGIYp630ik4FEo2kb6HaoNq4PkLY6n2j5KXVl9Y5g0sTGp1ZayReExQ9ooXC/95gRP0L+069055oBDGcz1mCXJoNqtC54lIzjZ8/dhg0Lmg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779659790; c=relaxed/simple; bh=zuFz+m6zZSoI9BcR9nzfQcGG2R0KeXY9466berBa7jw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To; b=sPuH8QjtObKPsPJEfSE4pqaQaRdeen18VyUrRH41nEN6N7eupdU/YtYgX/pSpsmMp5yGtaHTRhOhw3ijAKp1AWx3s0xLoFF2p2Pw5m871gJRaOWiVSJziwkkdgD6V9IWK3jEuxJzlOXOz2g18SNMhpAF2oChTQgi6xZxPBz/oU4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mythread.it; spf=pass smtp.mailfrom=mythread.it; dkim=pass (2048-bit key) header.d=mythread.it header.i=@mythread.it header.b=YYGEqd2+; arc=none smtp.client-ip=62.149.156.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=mythread.it Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=mythread.it Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mythread.it header.i=@mythread.it header.b="YYGEqd2+" Received: from [192.168.1.237] ([94.34.125.0]) by Aruba SMTP with ESMTPSA id RGo5wsRmcwf0DRGo6wFEWx; Sun, 24 May 2026 23:56:26 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mythread.it; s=a1; t=1779659786; bh=zuFz+m6zZSoI9BcR9nzfQcGG2R0KeXY9466berBa7jw=; h=From:Date:Subject:MIME-Version:Content-Type:To; b=YYGEqd2+4h7vvDvNA7O9/1to+0Um9u1P8OT3+BwFWXFWL+3FaejwbOnDbyRJt2FKS 3pA31gzoPMOqjav4YainG2wj6Gy3uSRjGgsULsgZR49aKNczPuQ6Pm3JqJra4WrdV0 lBdlM7zLUetZx6Lq7kgPyNWp+8hjK1jaBZVuIuZrxTwgHr3MZ16D1j/PAqKiTuvq8g BXwkw4oBxe5wkSLU0MIKbGkHW51a47HMQjOvNnrINwkM1+LLpgrbsizJSrUFwjsnwi YW2+bSse/mrad+QeeyD5ymFAKocI6ujgKFwyB9KE3/3i6UoaAkCYTYbVWcqBzlkHqr Sivk7tDUnFTgg== From: Alessio Ferri Date: Sun, 24 May 2026 23:56:24 +0200 Subject: [PATCH v3 7/7] b43: add RF power offset for N-PHY r8 + radio 2057 r8 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260524-b43_complete_n_phy_rev_8_radio_2057_rev_8_support-v1-7-cdad2c8526c6@gmail.com> References: <20260524-b43_complete_n_phy_rev_8_radio_2057_rev_8_support-v1-0-cdad2c8526c6@gmail.com> In-Reply-To: <20260524-b43_complete_n_phy_rev_8_radio_2057_rev_8_support-v1-0-cdad2c8526c6@gmail.com> To: linux-wireless@vger.kernel.org, b43-dev@lists.infradead.org, linux-kernel@vger.kernel.org, Alessio Ferri X-Mailer: b4 0.14.3 X-CMAE-Envelope: MS4xfA68BqaCkARgcDeF0kZ2UFl6SNlLG18wR+LQBV8qIB0LCxYN2/+rkKbov4N3NO6Mo6TWpaUKQz03uo0SF2PaeQYV16MzNF3ra8jTW86kg0CPBytWRzkp d8c2s4TVdBqBsWRw5aLGzkJ3ZMRxJn3QM6dOF/m1Z5un74VmOQoq5Fy0PtdOwp2ANnPjutzDk0UQCpQ9R73Z457QW7EuxL0C9LiMnROBOBTI0NLDNzutxWX7 ejqX4QxUgegJG5GxuGyf2tfV2PUtuuNnd/IKPSECMhigZ/KnIfgFE/CruilI8wRTeJ4JjtNNb0IrIpHMupqlknExVmWS8fMZ9EPIYzusd3E= Add the 2.4 GHz RF power offset table for N-PHY rev 8 paired with radio 2057 rev 8 and wire it to the existing dispatcher. b43_ntab_get_rf_pwr_offset_table() currently dispatches on phy->rev =3D=3D 17 (radio_rev 14) and phy->rev =3D=3D 16 (radio_rev 9) for 2.4 GHz. phy->rev =3D=3D 8 falls through and the function logs: b43-phyX ERROR: No 2GHz RF power table available for this device Add a phy->rev =3D=3D 8 / radio_rev =3D=3D 8 case returning the new table. The values are sourced from the proprietary Broadcom wl driver's nphy_papd_padgain_dlt_2g_2057rev5 array. Reusing the rev 5 values is structurally appropriate: the IPA TX gain table added by the preceding patch in this series shares the low 24 bits of every entry with rev 5 - same gain step amplitudes, only the PAD-gain selector byte differs. b43's pad_gain extraction in b43_nphy_tx_pwr_ctl_init() reads bits 19..23 of the gain entry, which sit in the shared low-24-bit range; the same gain index therefore maps to the same physical PAD gain code on both revisions and warrants the same per-index dB offset. Note that b43_nphy_tx_gain_table_upload() currently has a "TODO: Enable this once we have gains configured" early-return for phy->rev >=3D 7. With that early-return in place, this table is fetched (silencing the b43err that would otherwise abort PHY init) but its values are not yet written to MMIO. Resolving the TODO is a future, separate task. Assisted-by: Claude:claude-4.7-opus Signed-off-by: Alessio Ferri --- drivers/net/wireless/broadcom/b43/tables_nphy.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/drivers/net/wireless/broadcom/b43/tables_nphy.c b/drivers/net/= wireless/broadcom/b43/tables_nphy.c index 84e8d718d..ecd660b9c 100644 --- a/drivers/net/wireless/broadcom/b43/tables_nphy.c +++ b/drivers/net/wireless/broadcom/b43/tables_nphy.c @@ -2923,6 +2923,21 @@ static const s16 b43_ntab_rf_pwr_offset_2057_rev9_5g= [] =3D { 0, }; =20 +/* Sourced from the rev 5 sibling: the rev 8 IPA TX gain table + * shares the low 24 bits of every entry with rev 5 (only the + * PAD-gain selector byte differs), so the same gain index maps to + * the same physical PAD gain code on both revisions. + */ +static const s16 b43_ntab_rf_pwr_offset_2057_rev8_2g[] =3D { + -109, -109, -82, -68, -58, + -50, -44, -39, -35, -31, + -28, -26, -23, -21, -19, + -17, -16, -14, -13, -11, + -10, -9, -8, -7, -5, + -5, -4, -3, -2, -1, + -1, 0, +}; + /* Extracted from MMIO dump of 6.30.223.248 * Entries: 0, 26, 28, 29, 30, 31 were guessed */ @@ -3782,6 +3797,10 @@ const s16 *b43_ntab_get_rf_pwr_offset_table(struct b= 43_wldev *dev) if (phy->radio_rev =3D=3D 9) return b43_ntab_rf_pwr_offset_2057_rev9_2g; break; + case 8: + if (phy->radio_rev =3D=3D 8) + return b43_ntab_rf_pwr_offset_2057_rev8_2g; + break; } =20 b43err(dev->wl, --=20 2.54.0