Lines 84-89
int b43_modparam_qos = 1;
Link Here
|
84 |
module_param_named(qos, b43_modparam_qos, int, 0444); |
84 |
module_param_named(qos, b43_modparam_qos, int, 0444); |
85 |
MODULE_PARM_DESC(qos, "Enable QOS support (default on)"); |
85 |
MODULE_PARM_DESC(qos, "Enable QOS support (default on)"); |
86 |
|
86 |
|
|
|
87 |
static int modparam_btcoex = 1; |
88 |
module_param_named(btcoex, modparam_btcoex, int, 0444); |
89 |
MODULE_PARM_DESC(btcoex, "Enable Bluetooth coexistance (default on)"); |
90 |
|
87 |
|
91 |
|
88 |
static const struct ssb_device_id b43_ssb_tbl[] = { |
92 |
static const struct ssb_device_id b43_ssb_tbl[] = { |
89 |
SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_80211, 5), |
93 |
SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_80211, 5), |
Lines 3708-3713
static void b43_bluetooth_coext_enable(struct b43_wldev *dev)
Link Here
|
3708 |
struct ssb_sprom *sprom = &dev->dev->bus->sprom; |
3712 |
struct ssb_sprom *sprom = &dev->dev->bus->sprom; |
3709 |
u32 hf; |
3713 |
u32 hf; |
3710 |
|
3714 |
|
|
|
3715 |
if (!modparam_btcoex) |
3716 |
return; |
3711 |
if (!(sprom->boardflags_lo & B43_BFL_BTCOEXIST)) |
3717 |
if (!(sprom->boardflags_lo & B43_BFL_BTCOEXIST)) |
3712 |
return; |
3718 |
return; |
3713 |
if (dev->phy.type != B43_PHYTYPE_B && !dev->phy.gmode) |
3719 |
if (dev->phy.type != B43_PHYTYPE_B && !dev->phy.gmode) |
Lines 3719-3729
static void b43_bluetooth_coext_enable(struct b43_wldev *dev)
Link Here
|
3719 |
else |
3725 |
else |
3720 |
hf |= B43_HF_BTCOEX; |
3726 |
hf |= B43_HF_BTCOEX; |
3721 |
b43_hf_write(dev, hf); |
3727 |
b43_hf_write(dev, hf); |
3722 |
//TODO |
|
|
3723 |
} |
3728 |
} |
3724 |
|
3729 |
|
3725 |
static void b43_bluetooth_coext_disable(struct b43_wldev *dev) |
3730 |
static void b43_bluetooth_coext_disable(struct b43_wldev *dev) |
3726 |
{ //TODO |
3731 |
{ |
|
|
3732 |
if (!modparam_btcoex) |
3733 |
return; |
3734 |
//TODO |
3727 |
} |
3735 |
} |
3728 |
|
3736 |
|
3729 |
static void b43_imcfglo_timeouts_workaround(struct b43_wldev *dev) |
3737 |
static void b43_imcfglo_timeouts_workaround(struct b43_wldev *dev) |
Lines 4416-4421
static int b43_one_core_attach(struct ssb_device *dev, struct b43_wl *wl)
Link Here
|
4416 |
|
4424 |
|
4417 |
static void b43_sprom_fixup(struct ssb_bus *bus) |
4425 |
static void b43_sprom_fixup(struct ssb_bus *bus) |
4418 |
{ |
4426 |
{ |
|
|
4427 |
struct pci_dev *pdev; |
4428 |
|
4419 |
/* boardflags workarounds */ |
4429 |
/* boardflags workarounds */ |
4420 |
if (bus->boardinfo.vendor == SSB_BOARDVENDOR_DELL && |
4430 |
if (bus->boardinfo.vendor == SSB_BOARDVENDOR_DELL && |
4421 |
bus->chip_id == 0x4301 && bus->boardinfo.rev == 0x74) |
4431 |
bus->chip_id == 0x4301 && bus->boardinfo.rev == 0x74) |
Lines 4423-4428
static void b43_sprom_fixup(struct ssb_bus *bus)
Link Here
|
4423 |
if (bus->boardinfo.vendor == PCI_VENDOR_ID_APPLE && |
4433 |
if (bus->boardinfo.vendor == PCI_VENDOR_ID_APPLE && |
4424 |
bus->boardinfo.type == 0x4E && bus->boardinfo.rev > 0x40) |
4434 |
bus->boardinfo.type == 0x4E && bus->boardinfo.rev > 0x40) |
4425 |
bus->sprom.boardflags_lo |= B43_BFL_PACTRL; |
4435 |
bus->sprom.boardflags_lo |= B43_BFL_PACTRL; |
|
|
4436 |
if (bus->bustype == SSB_BUSTYPE_PCI) { |
4437 |
pdev = bus->host_pci; |
4438 |
if (pdev->vendor == PCI_VENDOR_ID_BROADCOM && |
4439 |
pdev->device == 0x4318 && |
4440 |
pdev->subsystem_vendor == PCI_VENDOR_ID_ASUSTEK && |
4441 |
pdev->subsystem_device == 0x100F) |
4442 |
bus->sprom.boardflags_lo &= ~B43_BFL_BTCOEXIST; |
4443 |
} |
4426 |
} |
4444 |
} |
4427 |
|
4445 |
|
4428 |
static void b43_wireless_exit(struct ssb_device *dev, struct b43_wl *wl) |
4446 |
static void b43_wireless_exit(struct ssb_device *dev, struct b43_wl *wl) |