]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
b43: fix support for 14e4:4321 PCI dev with BCM4321 chipset
authorRafał Miłecki <zajec5@gmail.com>
Sat, 6 Jun 2015 20:45:59 +0000 (22:45 +0200)
committerLuis Henriques <luis.henriques@canonical.com>
Wed, 15 Jul 2015 09:00:24 +0000 (10:00 +0100)
commit 90f91b129810c3f169e443252be30ed7c0130326 upstream.

It seems Broadcom released two devices with conflicting device id. There
are for sure 14e4:4321 PCI devices with BCM4321 (N-PHY) chipset, they
can be found in routers, e.g. Netgear WNR834Bv2. However, according to
Broadcom public sources 0x4321 is also used for 5 GHz BCM4306 (G-PHY).
It's unsure if they meant PCI device id, or "virtual" id (from SPROM).
To distinguish these devices lets check PHY type (G vs. N).

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
drivers/net/wireless/b43/main.c

index 0d6a0bb1f876c3089c13448921b34339da3b8b67..8556325e98a35beeca9e89b072a1f850b1a12c12 100644 (file)
@@ -5130,6 +5130,10 @@ static void b43_supported_bands(struct b43_wldev *dev, bool *have_2ghz_phy,
                *have_5ghz_phy = true;
                return;
        case 0x4321: /* BCM4306 */
+               /* There are 14e4:4321 PCI devs with 2.4 GHz BCM4321 (N-PHY) */
+               if (dev->phy.type != B43_PHYTYPE_G)
+                       break;
+               /* fall through */
        case 0x4313: /* BCM4311 */
        case 0x431a: /* BCM4318 */
        case 0x432a: /* BCM4321 */