diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-core.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-core.c | 8 |
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 | } |
1505 | EXPORT_SYMBOL(iwl_enable_interrupts); | 1505 | EXPORT_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 | } |
1559 | EXPORT_SYMBOL(iwl_alloc_isr_ict); | 1561 | EXPORT_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 */ |