aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl3945-base.c
diff options
context:
space:
mode:
authorMohamed Abbas <mohamed.abbas@intel.com>2009-05-22 14:01:52 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-05-22 14:06:09 -0400
commit40cefda9ce11c44a2531d07af812900aa5f3ce9d (patch)
tree08b4108aa0c9678bb76450212e0806234134731e /drivers/net/wireless/iwlwifi/iwl3945-base.c
parent4752c93c30441f98f7ed723001b1a5e3e5619829 (diff)
iwlcore: Add support for periodic RX interrupt
Periodic RX interrupt needed with ICT interrupt to prevent RX race. Sending RX interrupt require many steps to be done in the the device: 1- write interrupt to current index in ICT table. 2- dma RX frame. 3- update RX shared data to indicate last write index. 4- send interrupt. This could lead to RX race, driver could receive RX interrupt but the shared data changes does not reflect that. this could lead to RX race, RX periodic will solve this race Signed-off-by: Mohamed Abbas <mohamed.abbas@intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl3945-base.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl3945-base.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index 639893d7808b..c434f493daf5 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -1944,9 +1944,9 @@ static void iwl3945_irq_tasklet(struct iwl_priv *priv)
1944 priv->isr_stats.unhandled++; 1944 priv->isr_stats.unhandled++;
1945 } 1945 }
1946 1946
1947 if (inta & ~CSR_INI_SET_MASK) { 1947 if (inta & ~priv->inta_mask) {
1948 IWL_WARN(priv, "Disabled INTA bits 0x%08x were pending\n", 1948 IWL_WARN(priv, "Disabled INTA bits 0x%08x were pending\n",
1949 inta & ~CSR_INI_SET_MASK); 1949 inta & ~priv->inta_mask);
1950 IWL_WARN(priv, " with FH_INT = 0x%08x\n", inta_fh); 1950 IWL_WARN(priv, " with FH_INT = 0x%08x\n", inta_fh);
1951 } 1951 }
1952 1952
@@ -4184,6 +4184,7 @@ static int iwl3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e
4184 IWL_DEBUG_INFO(priv, "*** LOAD DRIVER ***\n"); 4184 IWL_DEBUG_INFO(priv, "*** LOAD DRIVER ***\n");
4185 priv->cfg = cfg; 4185 priv->cfg = cfg;
4186 priv->pci_dev = pdev; 4186 priv->pci_dev = pdev;
4187 priv->inta_mask = CSR_INI_SET_MASK;
4187 4188
4188#ifdef CONFIG_IWLWIFI_DEBUG 4189#ifdef CONFIG_IWLWIFI_DEBUG
4189 priv->debug_level = iwl3945_mod_params.debug; 4190 priv->debug_level = iwl3945_mod_params.debug;