Merge branch 'upstream-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 into upstream-fixes
This commit is contained in:
commit
1f10bec3ef
1 changed files with 20 additions and 2 deletions
|
@ -746,7 +746,7 @@ int bcm43xx_sprom_write(struct bcm43xx_private *bcm, const u16 *sprom)
|
||||||
if (err)
|
if (err)
|
||||||
goto err_ctlreg;
|
goto err_ctlreg;
|
||||||
spromctl |= 0x10; /* SPROM WRITE enable. */
|
spromctl |= 0x10; /* SPROM WRITE enable. */
|
||||||
bcm43xx_pci_write_config32(bcm, BCM43xx_PCICFG_SPROMCTL, spromctl);
|
err = bcm43xx_pci_write_config32(bcm, BCM43xx_PCICFG_SPROMCTL, spromctl);
|
||||||
if (err)
|
if (err)
|
||||||
goto err_ctlreg;
|
goto err_ctlreg;
|
||||||
/* We must burn lots of CPU cycles here, but that does not
|
/* We must burn lots of CPU cycles here, but that does not
|
||||||
|
@ -768,7 +768,7 @@ int bcm43xx_sprom_write(struct bcm43xx_private *bcm, const u16 *sprom)
|
||||||
mdelay(20);
|
mdelay(20);
|
||||||
}
|
}
|
||||||
spromctl &= ~0x10; /* SPROM WRITE enable. */
|
spromctl &= ~0x10; /* SPROM WRITE enable. */
|
||||||
bcm43xx_pci_write_config32(bcm, BCM43xx_PCICFG_SPROMCTL, spromctl);
|
err = bcm43xx_pci_write_config32(bcm, BCM43xx_PCICFG_SPROMCTL, spromctl);
|
||||||
if (err)
|
if (err)
|
||||||
goto err_ctlreg;
|
goto err_ctlreg;
|
||||||
mdelay(500);
|
mdelay(500);
|
||||||
|
@ -1463,6 +1463,23 @@ static void handle_irq_transmit_status(struct bcm43xx_private *bcm)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void drain_txstatus_queue(struct bcm43xx_private *bcm)
|
||||||
|
{
|
||||||
|
u32 dummy;
|
||||||
|
|
||||||
|
if (bcm->current_core->rev < 5)
|
||||||
|
return;
|
||||||
|
/* Read all entries from the microcode TXstatus FIFO
|
||||||
|
* and throw them away.
|
||||||
|
*/
|
||||||
|
while (1) {
|
||||||
|
dummy = bcm43xx_read32(bcm, BCM43xx_MMIO_XMITSTAT_0);
|
||||||
|
if (!dummy)
|
||||||
|
break;
|
||||||
|
dummy = bcm43xx_read32(bcm, BCM43xx_MMIO_XMITSTAT_1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void bcm43xx_generate_noise_sample(struct bcm43xx_private *bcm)
|
static void bcm43xx_generate_noise_sample(struct bcm43xx_private *bcm)
|
||||||
{
|
{
|
||||||
bcm43xx_shm_write16(bcm, BCM43xx_SHM_SHARED, 0x408, 0x7F7F);
|
bcm43xx_shm_write16(bcm, BCM43xx_SHM_SHARED, 0x408, 0x7F7F);
|
||||||
|
@ -3532,6 +3549,7 @@ int bcm43xx_select_wireless_core(struct bcm43xx_private *bcm,
|
||||||
bcm43xx_macfilter_clear(bcm, BCM43xx_MACFILTER_ASSOC);
|
bcm43xx_macfilter_clear(bcm, BCM43xx_MACFILTER_ASSOC);
|
||||||
bcm43xx_macfilter_set(bcm, BCM43xx_MACFILTER_SELF, (u8 *)(bcm->net_dev->dev_addr));
|
bcm43xx_macfilter_set(bcm, BCM43xx_MACFILTER_SELF, (u8 *)(bcm->net_dev->dev_addr));
|
||||||
bcm43xx_security_init(bcm);
|
bcm43xx_security_init(bcm);
|
||||||
|
drain_txstatus_queue(bcm);
|
||||||
ieee80211softmac_start(bcm->net_dev);
|
ieee80211softmac_start(bcm->net_dev);
|
||||||
|
|
||||||
/* Let's go! Be careful after enabling the IRQs.
|
/* Let's go! Be careful after enabling the IRQs.
|
||||||
|
|
Loading…
Reference in a new issue