|
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) |