aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-core.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-core.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
index 12f018392a44..e93ddb74457e 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -1500,7 +1500,7 @@ void iwl_enable_interrupts(struct iwl_priv *priv)
1500{ 1500{
1501 IWL_DEBUG_ISR(priv, "Enabling interrupts\n"); 1501 IWL_DEBUG_ISR(priv, "Enabling interrupts\n");
1502 set_bit(STATUS_INT_ENABLED, &priv->status); 1502 set_bit(STATUS_INT_ENABLED, &priv->status);
1503 iwl_write32(priv, CSR_INT_MASK, CSR_INI_SET_MASK); 1503 iwl_write32(priv, CSR_INT_MASK, priv->inta_mask);
1504} 1504}
1505EXPORT_SYMBOL(iwl_enable_interrupts); 1505EXPORT_SYMBOL(iwl_enable_interrupts);
1506 1506
@@ -1554,6 +1554,8 @@ int iwl_alloc_isr_ict(struct iwl_priv *priv)
1554 memset(priv->ict_tbl_vir,0, (sizeof(u32) * ICT_COUNT) + PAGE_SIZE); 1554 memset(priv->ict_tbl_vir,0, (sizeof(u32) * ICT_COUNT) + PAGE_SIZE);
1555 priv->ict_index = 0; 1555 priv->ict_index = 0;
1556 1556
1557 /* add periodic RX interrupt */
1558 priv->inta_mask |= CSR_INT_BIT_RX_PERIODIC;
1557 return 0; 1559 return 0;
1558} 1560}
1559EXPORT_SYMBOL(iwl_alloc_isr_ict); 1561EXPORT_SYMBOL(iwl_alloc_isr_ict);
@@ -1586,7 +1588,7 @@ int iwl_reset_ict(struct iwl_priv *priv)
1586 iwl_write32(priv, CSR_DRAM_INT_TBL_REG, val); 1588 iwl_write32(priv, CSR_DRAM_INT_TBL_REG, val);
1587 priv->use_ict = true; 1589 priv->use_ict = true;
1588 priv->ict_index = 0; 1590 priv->ict_index = 0;
1589 iwl_write32(priv, CSR_INT, CSR_INI_SET_MASK); 1591 iwl_write32(priv, CSR_INT, priv->inta_mask);
1590 iwl_enable_interrupts(priv); 1592 iwl_enable_interrupts(priv);
1591 spin_unlock_irqrestore(&priv->lock, flags); 1593 spin_unlock_irqrestore(&priv->lock, flags);
1592 1594
@@ -1668,7 +1670,7 @@ irqreturn_t iwl_isr_ict(int irq, void *data)
1668 IWL_DEBUG_ISR(priv, "ISR inta 0x%08x, enabled 0x%08x ict 0x%08x\n", 1670 IWL_DEBUG_ISR(priv, "ISR inta 0x%08x, enabled 0x%08x ict 0x%08x\n",
1669 inta, inta_mask, val); 1671 inta, inta_mask, val);
1670 1672
1671 inta &= CSR_INI_SET_MASK; 1673 inta &= priv->inta_mask;
1672 priv->inta |= inta; 1674 priv->inta |= inta;
1673 1675
1674 /* iwl_irq_tasklet() will service interrupts and re-enable them */ 1676 /* iwl_irq_tasklet() will service interrupts and re-enable them */