diff options
author | Mohamed Abbas <mohamed.abbas@intel.com> | 2009-05-22 14:01:52 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-05-22 14:06:09 -0400 |
commit | 40cefda9ce11c44a2531d07af812900aa5f3ce9d (patch) | |
tree | 08b4108aa0c9678bb76450212e0806234134731e /drivers/net/wireless/iwlwifi/iwl3945-base.c | |
parent | 4752c93c30441f98f7ed723001b1a5e3e5619829 (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.c | 5 |
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; |