bwn(4): ignore BCM4321's unpopulated USB11 host controller core.

Broadcom Intensi-fi chipsets provided a common set of IP cores; on PCI/PCIe
devices, the USB11 host controller is left floating.

Approved by:	adrian (mentor, implicit)
This commit is contained in:
Landon J. Fuller 2016-09-05 21:55:27 +00:00
parent fb88110c09
commit 7d6162806b
2 changed files with 15 additions and 3 deletions

View File

@ -84,10 +84,12 @@ static const struct bwn_pci_device siba_devices[] = {
BWN_BCM_DEV(BCM4318_D11A, "BCM4318 802.11a",
BWN_QUIRK_UNTESTED|BWN_QUIRK_WLAN_DUALCORE),
BWN_BCM_DEV(BCM4321_D11N, "BCM4321 802.11n Dual-Band", 0),
BWN_BCM_DEV(BCM4321_D11N2G, "BCM4321 802.11n 2GHz", 0),
BWN_BCM_DEV(BCM4321_D11N, "BCM4321 802.11n Dual-Band",
BWN_QUIRK_USBH_UNPOPULATED),
BWN_BCM_DEV(BCM4321_D11N2G, "BCM4321 802.11n 2GHz",
BWN_QUIRK_USBH_UNPOPULATED),
BWN_BCM_DEV(BCM4321_D11N2G, "BCM4321 802.11n 5GHz",
BWN_QUIRK_UNTESTED),
BWN_QUIRK_UNTESTED|BWN_QUIRK_USBH_UNPOPULATED),
BWN_BCM_DEV(BCM4322_D11N, "BCM4322 802.11n Dual-Band", 0),
BWN_BCM_DEV(BCM4322_D11N2G, "BCM4322 802.11n 2GHz",
@ -263,6 +265,9 @@ bwn_pci_is_core_disabled(device_t dev, device_t child,
case BHND_DEVCLASS_ENET_MAC:
case BHND_DEVCLASS_ENET_PHY:
return ((sc->quirks & BWN_QUIRK_ENET_HW_UNPOPULATED) != 0);
case BHND_DEVCLASS_USB_HOST:
return ((sc->quirks & BWN_QUIRK_USBH_UNPOPULATED) != 0);
default:
return (false);

View File

@ -68,6 +68,13 @@ enum {
* this quirk to treat these cores as unpopulated.
*/
BWN_QUIRK_ENET_HW_UNPOPULATED = 1<<2,
/**
* Some PCI/PCIe "Intensi-fi" chipsets shipped with floating USB
* host controller cores; set this quirk to treat these cores as
* unpopulated.
*/
BWN_QUIRK_USBH_UNPOPULATED = 1<<3,
};
/* PCI device descriptor */