summaryrefslogtreecommitdiffstats
path: root/abs/core/ipw3945/lockup.patch
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/ipw3945/lockup.patch')
-rw-r--r--abs/core/ipw3945/lockup.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/abs/core/ipw3945/lockup.patch b/abs/core/ipw3945/lockup.patch
new file mode 100644
index 0000000..993fbbc
--- /dev/null
+++ b/abs/core/ipw3945/lockup.patch
@@ -0,0 +1,31 @@
+
+Fix potential driver lockup problem
+
+Since we have already store the inta to priv->isr_inta in the
+interrupt handler we don't need to get it from the hardware again
+in the tasklet. Some people find ipw3945-1.2.1 still didn't
+resolve the boot lockup problem as reported in bugzilla #1096.
+
+If you still find the lockup problem in ipw3945-1.2.1, please try
+this patch and report if it resolves your problem or not to
+yi.zhu@intel.com.
+
+Thanks to Egon for providing this patch!
+
+Signed-off-by: Egon <anannatrak@yahoo.it>
+Signed-off-by: Zhu Yi <yi.zhu@intel.com>
+--
+
+--- a/ipw3945.c 2007-04-11 14:46:58.000000000 +0800
++++ b/ipw3945.c 2007-05-14 15:55:56.000000000 +0800
+@@ -2769,8 +2769,8 @@ static void ipw_irq_tasklet(struct ipw_p
+
+ spin_lock_irqsave(&priv->lock, flags);
+
+- inta = ipw_read32(priv, CSR_INT);
+- inta_mask = ipw_read32(priv, CSR_INT_MASK);
++ inta = 0;
++ inta_mask = 0;
+ ipw_write32(priv, CSR_INT, inta);
+ inta &= (CSR_INI_SET_MASK & inta_mask);
+