Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (22 commits) tun: Multicast handling in tun_chr_ioctl() needs proper locking. [NET]: Fix heavy stack usage in seq_file output routines. [AF_UNIX] Initialise UNIX sockets before general device initcalls [RTNETLINK]: Fix bogus ASSERT_RTNL warning iwlwifi: Fix built-in compilation of iwlcore (part 2) tun: Fix minor race in TUNSETLINK ioctl handling. ppp_generic: use stats from net_device structure iwlwifi: Don't unlock priv->mutex if it isn't locked wireless: rndis_wlan: modparam_workaround_interval is never below 0. prism54: prism54_get_encode() test below 0 on unsigned index mac80211: update mesh EID values b43: Workaround DMA quirks mac80211: fix use before check of Qdisc length net/mac80211/rx.c: fix off-by-one mac80211: Fix race between ieee80211_rx_bss_put and lookup routines. ath5k: Fix radio identification on AR5424/2424 ssb: Fix all-ones boardflags b43: Add more btcoexist workarounds b43: Fix HostFlags data types b43: Workaround invalid bluetooth settings ...
This commit is contained in:
@@ -84,6 +84,10 @@ int b43_modparam_qos = 1;
|
||||
module_param_named(qos, b43_modparam_qos, int, 0444);
|
||||
MODULE_PARM_DESC(qos, "Enable QOS support (default on)");
|
||||
|
||||
static int modparam_btcoex = 1;
|
||||
module_param_named(btcoex, modparam_btcoex, int, 0444);
|
||||
MODULE_PARM_DESC(btcoex, "Enable Bluetooth coexistance (default on)");
|
||||
|
||||
|
||||
static const struct ssb_device_id b43_ssb_tbl[] = {
|
||||
SSB_DEVICE(SSB_VENDOR_BROADCOM, SSB_DEV_80211, 5),
|
||||
@@ -3706,8 +3710,10 @@ static void setup_struct_wldev_for_init(struct b43_wldev *dev)
|
||||
static void b43_bluetooth_coext_enable(struct b43_wldev *dev)
|
||||
{
|
||||
struct ssb_sprom *sprom = &dev->dev->bus->sprom;
|
||||
u32 hf;
|
||||
u64 hf;
|
||||
|
||||
if (!modparam_btcoex)
|
||||
return;
|
||||
if (!(sprom->boardflags_lo & B43_BFL_BTCOEXIST))
|
||||
return;
|
||||
if (dev->phy.type != B43_PHYTYPE_B && !dev->phy.gmode)
|
||||
@@ -3719,11 +3725,13 @@ static void b43_bluetooth_coext_enable(struct b43_wldev *dev)
|
||||
else
|
||||
hf |= B43_HF_BTCOEX;
|
||||
b43_hf_write(dev, hf);
|
||||
//TODO
|
||||
}
|
||||
|
||||
static void b43_bluetooth_coext_disable(struct b43_wldev *dev)
|
||||
{ //TODO
|
||||
{
|
||||
if (!modparam_btcoex)
|
||||
return;
|
||||
//TODO
|
||||
}
|
||||
|
||||
static void b43_imcfglo_timeouts_workaround(struct b43_wldev *dev)
|
||||
@@ -3852,7 +3860,8 @@ static int b43_wireless_core_init(struct b43_wldev *dev)
|
||||
struct ssb_sprom *sprom = &bus->sprom;
|
||||
struct b43_phy *phy = &dev->phy;
|
||||
int err;
|
||||
u32 hf, tmp;
|
||||
u64 hf;
|
||||
u32 tmp;
|
||||
|
||||
B43_WARN_ON(b43_status(dev) != B43_STAT_UNINIT);
|
||||
|
||||
@@ -4414,8 +4423,16 @@ static int b43_one_core_attach(struct ssb_device *dev, struct b43_wl *wl)
|
||||
return err;
|
||||
}
|
||||
|
||||
#define IS_PDEV(pdev, _vendor, _device, _subvendor, _subdevice) ( \
|
||||
(pdev->vendor == PCI_VENDOR_ID_##_vendor) && \
|
||||
(pdev->device == _device) && \
|
||||
(pdev->subsystem_vendor == PCI_VENDOR_ID_##_subvendor) && \
|
||||
(pdev->subsystem_device == _subdevice) )
|
||||
|
||||
static void b43_sprom_fixup(struct ssb_bus *bus)
|
||||
{
|
||||
struct pci_dev *pdev;
|
||||
|
||||
/* boardflags workarounds */
|
||||
if (bus->boardinfo.vendor == SSB_BOARDVENDOR_DELL &&
|
||||
bus->chip_id == 0x4301 && bus->boardinfo.rev == 0x74)
|
||||
@@ -4423,6 +4440,13 @@ static void b43_sprom_fixup(struct ssb_bus *bus)
|
||||
if (bus->boardinfo.vendor == PCI_VENDOR_ID_APPLE &&
|
||||
bus->boardinfo.type == 0x4E && bus->boardinfo.rev > 0x40)
|
||||
bus->sprom.boardflags_lo |= B43_BFL_PACTRL;
|
||||
if (bus->bustype == SSB_BUSTYPE_PCI) {
|
||||
pdev = bus->host_pci;
|
||||
if (IS_PDEV(pdev, BROADCOM, 0x4318, ASUSTEK, 0x100F) ||
|
||||
IS_PDEV(pdev, BROADCOM, 0x4320, LINKSYS, 0x0015) ||
|
||||
IS_PDEV(pdev, BROADCOM, 0x4320, LINKSYS, 0x0013))
|
||||
bus->sprom.boardflags_lo &= ~B43_BFL_BTCOEXIST;
|
||||
}
|
||||
}
|
||||
|
||||
static void b43_wireless_exit(struct ssb_device *dev, struct b43_wl *wl)
|
||||
|
Reference in New Issue
Block a user