mwl8k: interrupt handling changes
We do not need to enable all the interrupts in mwl8k_probe_hw. We need to enable only MWL8K_A2H_INT_OPC_DONE interrupt for sending commands to the firmware. Keep the other interrupts masked in mwl8k_probe_hw. Also, in mwl8k_start, where we expect other interrupts, enable only those interrupts we are interested in. Signed-off-by: Nishant Sarmukadam <nishants@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
8962d87129
commit
12488e01fb
|
@ -4284,6 +4284,8 @@ static int mwl8k_start(struct ieee80211_hw *hw)
|
||||||
|
|
||||||
/* Enable interrupts */
|
/* Enable interrupts */
|
||||||
iowrite32(MWL8K_A2H_EVENTS, priv->regs + MWL8K_HIU_A2H_INTERRUPT_MASK);
|
iowrite32(MWL8K_A2H_EVENTS, priv->regs + MWL8K_HIU_A2H_INTERRUPT_MASK);
|
||||||
|
iowrite32(MWL8K_A2H_EVENTS,
|
||||||
|
priv->regs + MWL8K_HIU_A2H_INTERRUPT_STATUS_MASK);
|
||||||
|
|
||||||
rc = mwl8k_fw_lock(hw);
|
rc = mwl8k_fw_lock(hw);
|
||||||
if (!rc) {
|
if (!rc) {
|
||||||
|
@ -5282,7 +5284,8 @@ static int mwl8k_probe_hw(struct ieee80211_hw *hw)
|
||||||
iowrite32(MWL8K_A2H_INT_TX_DONE|MWL8K_A2H_INT_RX_READY|
|
iowrite32(MWL8K_A2H_INT_TX_DONE|MWL8K_A2H_INT_RX_READY|
|
||||||
MWL8K_A2H_INT_BA_WATCHDOG,
|
MWL8K_A2H_INT_BA_WATCHDOG,
|
||||||
priv->regs + MWL8K_HIU_A2H_INTERRUPT_CLEAR_SEL);
|
priv->regs + MWL8K_HIU_A2H_INTERRUPT_CLEAR_SEL);
|
||||||
iowrite32(0xffffffff, priv->regs + MWL8K_HIU_A2H_INTERRUPT_STATUS_MASK);
|
iowrite32(MWL8K_A2H_INT_OPC_DONE,
|
||||||
|
priv->regs + MWL8K_HIU_A2H_INTERRUPT_STATUS_MASK);
|
||||||
|
|
||||||
rc = request_irq(priv->pdev->irq, mwl8k_interrupt,
|
rc = request_irq(priv->pdev->irq, mwl8k_interrupt,
|
||||||
IRQF_SHARED, MWL8K_NAME, hw);
|
IRQF_SHARED, MWL8K_NAME, hw);
|
||||||
|
|
Loading…
Reference in New Issue