add the bcm43xx stable fix
svn path=/dists/trunk/linux-2.6/; revision=7792
This commit is contained in:
parent
476c514f85
commit
6a366812ed
|
@ -10,6 +10,7 @@ linux-2.6 (2.6.18-6) UNRELEASED; urgency=low
|
|||
- mm: small cleanup of install_page()
|
||||
- mm: fixup do_wp_page()
|
||||
- mm: msync() cleanup (closes: #394392)
|
||||
* Add another bcm43xx patch queued for 2.6.18.3.
|
||||
|
||||
[ Steve Langasek ]
|
||||
* [alpha] new titan-video patch, for compatibility with TITAN and similar
|
||||
|
@ -31,7 +32,7 @@ linux-2.6 (2.6.18-6) UNRELEASED; urgency=low
|
|||
[ Thiemo Seufer ]
|
||||
* Enable raid456 for mips/mipsel qemu kernel.
|
||||
|
||||
-- dann frazier <dannf@debian.org> Mon, 13 Nov 2006 00:42:56 -0700
|
||||
-- maximilian attems <maks@sternwelten.at> Tue, 14 Nov 2006 00:27:20 +0100
|
||||
|
||||
linux-2.6 (2.6.18-5) unstable; urgency=low
|
||||
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
From stable-bounces@linux.kernel.org Sun Nov 5 13:38:59 2006
|
||||
Date: Sun, 05 Nov 2006 15:34:36 -0600
|
||||
From: Larry Finger <Larry.Finger@lwfinger.net>
|
||||
To: stable@kernel.org
|
||||
Message-ID: <454E58EC.mail20S110EOC@lwfinger.net>
|
||||
Cc: netdev@vger.kernel.org, mb@bu3sch.de, greg@kroah.com
|
||||
Subject: bcm43xx: Drain TX status before starting IRQs
|
||||
|
||||
From: Michael Buesch <mb@bu3sch.de>
|
||||
|
||||
Drain the Microcode TX-status-FIFO before we enable IRQs.
|
||||
This is required, because the FIFO may still have entries left
|
||||
from a previous run. Those would immediately fire after enabling
|
||||
IRQs and would lead to an oops in the DMA TXstatus handling code.
|
||||
|
||||
Cc: "John W. Linville" <linville@tuxdriver.com>
|
||||
Signed-off-by: Michael Buesch <mb@bu3sch.de>
|
||||
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
|
||||
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
|
||||
---
|
||||
drivers/net/wireless/bcm43xx/bcm43xx_main.c | 18 ++++++++++++++++++
|
||||
1 file changed, 18 insertions(+)
|
||||
|
||||
--- linux-2.6.18.2.orig/drivers/net/wireless/bcm43xx/bcm43xx_main.c
|
||||
+++ linux-2.6.18.2/drivers/net/wireless/bcm43xx/bcm43xx_main.c
|
||||
@@ -1463,6 +1463,23 @@ static void handle_irq_transmit_status(s
|
||||
}
|
||||
}
|
||||
|
||||
+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)
|
||||
{
|
||||
bcm43xx_shm_write16(bcm, BCM43xx_SHM_SHARED, 0x408, 0x7F7F);
|
||||
@@ -3517,6 +3534,7 @@ int bcm43xx_select_wireless_core(struct
|
||||
bcm43xx_macfilter_clear(bcm, BCM43xx_MACFILTER_ASSOC);
|
||||
bcm43xx_macfilter_set(bcm, BCM43xx_MACFILTER_SELF, (u8 *)(bcm->net_dev->dev_addr));
|
||||
bcm43xx_security_init(bcm);
|
||||
+ drain_txstatus_queue(bcm);
|
||||
ieee80211softmac_start(bcm->net_dev);
|
||||
|
||||
/* Let's go! Be careful after enabling the IRQs.
|
|
@ -13,3 +13,4 @@
|
|||
+ features/all/sctp-backports-5.patch
|
||||
+ features/all/sctp-backports-6.patch
|
||||
+ features/all/sctp-backports-7.patch
|
||||
+ features/bcm43xx-drain-tx-status-before-starting-irqs.patch
|
||||
|
|
Loading…
Reference in New Issue