Merge branch 'upstream-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 into upstream-fixes

+20 -2
+20 -2
drivers/net/wireless/bcm43xx/bcm43xx_main.c
··· 746 if (err) 747 goto err_ctlreg; 748 spromctl |= 0x10; /* SPROM WRITE enable. */ 749 - bcm43xx_pci_write_config32(bcm, BCM43xx_PCICFG_SPROMCTL, spromctl); 750 if (err) 751 goto err_ctlreg; 752 /* We must burn lots of CPU cycles here, but that does not ··· 768 mdelay(20); 769 } 770 spromctl &= ~0x10; /* SPROM WRITE enable. */ 771 - bcm43xx_pci_write_config32(bcm, BCM43xx_PCICFG_SPROMCTL, spromctl); 772 if (err) 773 goto err_ctlreg; 774 mdelay(500); ··· 1460 bcm43xx_pio_handle_xmitstatus(bcm, &stat); 1461 else 1462 bcm43xx_dma_handle_xmitstatus(bcm, &stat); 1463 } 1464 } 1465 ··· 3549 bcm43xx_macfilter_clear(bcm, BCM43xx_MACFILTER_ASSOC); 3550 bcm43xx_macfilter_set(bcm, BCM43xx_MACFILTER_SELF, (u8 *)(bcm->net_dev->dev_addr)); 3551 bcm43xx_security_init(bcm); 3552 ieee80211softmac_start(bcm->net_dev); 3553 3554 /* Let's go! Be careful after enabling the IRQs.
··· 746 if (err) 747 goto err_ctlreg; 748 spromctl |= 0x10; /* SPROM WRITE enable. */ 749 + err = bcm43xx_pci_write_config32(bcm, BCM43xx_PCICFG_SPROMCTL, spromctl); 750 if (err) 751 goto err_ctlreg; 752 /* We must burn lots of CPU cycles here, but that does not ··· 768 mdelay(20); 769 } 770 spromctl &= ~0x10; /* SPROM WRITE enable. */ 771 + err = bcm43xx_pci_write_config32(bcm, BCM43xx_PCICFG_SPROMCTL, spromctl); 772 if (err) 773 goto err_ctlreg; 774 mdelay(500); ··· 1460 bcm43xx_pio_handle_xmitstatus(bcm, &stat); 1461 else 1462 bcm43xx_dma_handle_xmitstatus(bcm, &stat); 1463 + } 1464 + } 1465 + 1466 + static void drain_txstatus_queue(struct bcm43xx_private *bcm) 1467 + { 1468 + u32 dummy; 1469 + 1470 + if (bcm->current_core->rev < 5) 1471 + return; 1472 + /* Read all entries from the microcode TXstatus FIFO 1473 + * and throw them away. 1474 + */ 1475 + while (1) { 1476 + dummy = bcm43xx_read32(bcm, BCM43xx_MMIO_XMITSTAT_0); 1477 + if (!dummy) 1478 + break; 1479 + dummy = bcm43xx_read32(bcm, BCM43xx_MMIO_XMITSTAT_1); 1480 } 1481 } 1482 ··· 3532 bcm43xx_macfilter_clear(bcm, BCM43xx_MACFILTER_ASSOC); 3533 bcm43xx_macfilter_set(bcm, BCM43xx_MACFILTER_SELF, (u8 *)(bcm->net_dev->dev_addr)); 3534 bcm43xx_security_init(bcm); 3535 + drain_txstatus_queue(bcm); 3536 ieee80211softmac_start(bcm->net_dev); 3537 3538 /* Let's go! Be careful after enabling the IRQs.