From 4bfbed726462a37d0c42238d5380040880299501 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Sun, 5 Jun 2016 07:55:21 +0000 Subject: [PATCH] [bwn] Enable PHY-LP 5GHz support for the one NIC I have tested it on so far. After perusing the PHY-LP code (don't ask why; honest) I discovered that it /has/ 5GHz support - but it's not ever used. I found one NIC - a BCM4312 w/ pci id 0x4315 - which advertised dual-band PHY-LP support. Turns out it works. Whilst here, move up the support bit logging code so I can use it to debug this. Tested: * BCM4312 (pci id 0x4315); 5GHz STA operation --- sys/dev/bwn/if_bwn.c | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/sys/dev/bwn/if_bwn.c b/sys/dev/bwn/if_bwn.c index fcf79964822..27f919474dd 100644 --- a/sys/dev/bwn/if_bwn.c +++ b/sys/dev/bwn/if_bwn.c @@ -1163,6 +1163,16 @@ bwn_attach_core(struct bwn_mac *mac) have_bg = 1; have_a = 1; } +#if 0 + device_printf(sc->sc_dev, "%s: high=0x%08x, have_a=%d, have_bg=%d," + " deviceid=0x%04x, siba_deviceid=0x%04x\n", + __func__, + high, + have_a, + have_bg, + siba_get_pci_device(sc->sc_dev), + siba_get_chipid(sc->sc_dev)); +#endif } else { device_printf(sc->sc_dev, "%s: not siba; bailing\n", __func__); error = ENXIO; @@ -1183,18 +1193,12 @@ bwn_attach_core(struct bwn_mac *mac) if (error) goto fail; -#if 0 - device_printf(sc->sc_dev, "%s: high=0x%08x, have_a=%d, have_bg=%d," - " deviceid=0x%04x, siba_deviceid=0x%04x\n", - __func__, - high, - have_a, - have_bg, - siba_get_pci_device(sc->sc_dev), - siba_get_chipid(sc->sc_dev)); -#endif - + /* + * This is the whitelist of devices which we "believe" + * the SPROM PHY config from. The rest are "guessed". + */ if (siba_get_pci_device(sc->sc_dev) != 0x4312 && + siba_get_pci_device(sc->sc_dev) != 0x4315 && siba_get_pci_device(sc->sc_dev) != 0x4319 && siba_get_pci_device(sc->sc_dev) != 0x4324 && siba_get_pci_device(sc->sc_dev) != 0x4328 &&