summaryrefslogtreecommitdiff
path: root/sys/dev/bwn
diff options
context:
space:
mode:
authorLandon J. Fuller <landonf@FreeBSD.org>2018-01-19 22:43:08 +0000
committerLandon J. Fuller <landonf@FreeBSD.org>2018-01-19 22:43:08 +0000
commita225321fbcb066e159c13794a532070c3987f516 (patch)
tree8f954b896bed4c9c8f8ebe23fb848bbf0a302db0 /sys/dev/bwn
parent72759b4824351fc375aed4f6f85f0e010c813889 (diff)
Notes
Diffstat (limited to 'sys/dev/bwn')
-rw-r--r--sys/dev/bwn/if_bwn_pci.c14
-rw-r--r--sys/dev/bwn/if_bwn_pcivar.h7
2 files changed, 17 insertions, 4 deletions
diff --git a/sys/dev/bwn/if_bwn_pci.c b/sys/dev/bwn/if_bwn_pci.c
index 3a0d42f92bb0..41489603bf74 100644
--- a/sys/dev/bwn/if_bwn_pci.c
+++ b/sys/dev/bwn/if_bwn_pci.c
@@ -61,10 +61,13 @@ TUNABLE_INT("hw.bwn_pci.preferred", &prefer_new_driver);
/* SIBA Devices */
static const struct bwn_pci_device siba_devices[] = {
BWN_BCM_DEV(BCM4306_D11A, "BCM4306 802.11a",
- BWN_QUIRK_WLAN_DUALCORE),
- BWN_BCM_DEV(BCM4306_D11G, "BCM4306 802.11b/g", 0),
- BWN_BCM_DEV(BCM4306_D11G_ID2, "BCM4306 802.11b/g", 0),
- BWN_BCM_DEV(BCM4306_D11DUAL, "BCM4306 802.11a/b/g", 0),
+ BWN_QUIRK_WLAN_DUALCORE|BWN_QUIRK_SOFTMODEM_UNPOPULATED),
+ BWN_BCM_DEV(BCM4306_D11G, "BCM4306 802.11b/g",
+ BWN_QUIRK_SOFTMODEM_UNPOPULATED),
+ BWN_BCM_DEV(BCM4306_D11G_ID2, "BCM4306 802.11b/g",
+ BWN_QUIRK_SOFTMODEM_UNPOPULATED),
+ BWN_BCM_DEV(BCM4306_D11DUAL, "BCM4306 802.11a/b/g",
+ BWN_QUIRK_SOFTMODEM_UNPOPULATED),
BWN_BCM_DEV(BCM4307, "BCM4307 802.11b", 0),
BWN_BCM_DEV(BCM4311_D11G, "BCM4311 802.11b/g", 0),
@@ -269,6 +272,9 @@ bwn_pci_is_core_disabled(device_t dev, device_t child,
case BHND_DEVCLASS_USB_HOST:
return ((sc->quirks & BWN_QUIRK_USBH_UNPOPULATED) != 0);
+ case BHND_DEVCLASS_SOFTMODEM:
+ return ((sc->quirks & BWN_QUIRK_SOFTMODEM_UNPOPULATED) != 0);
+
default:
return (false);
}
diff --git a/sys/dev/bwn/if_bwn_pcivar.h b/sys/dev/bwn/if_bwn_pcivar.h
index 6c3b4abb9fdb..06c781e557f6 100644
--- a/sys/dev/bwn/if_bwn_pcivar.h
+++ b/sys/dev/bwn/if_bwn_pcivar.h
@@ -74,6 +74,13 @@ enum {
* unpopulated.
*/
BWN_QUIRK_USBH_UNPOPULATED = 1<<3,
+
+ /**
+ * Some early devices (including all BCM4306 chipsets) shipped with
+ * floating analog softmodem codec cores; set this quirk to treat these
+ * cores as unpopulated.
+ */
+ BWN_QUIRK_SOFTMODEM_UNPOPULATED = 1<<4,
};
/* PCI device descriptor */