Skip to content

Commit

Permalink
iwlagn: stop interrupts when suspending
Browse files Browse the repository at this point in the history
Occasionally, the device will send interrupts
while it is resuming, at a point where we are
not set up again to handle them. This causes
the core IRQ handling to completely disable
the IRQ, and then the driver won't work again
until it is reloaded/rebound.

To fix this issue disable the IRQ on suspend,
this will cause us to only get interrupts
again after we've setup everything on resume.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Johannes Berg authored and John W. Linville committed Oct 14, 2011
1 parent 26bfc0c commit d36120c
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
Original file line number Diff line number Diff line change
Expand Up @@ -1377,8 +1377,13 @@ static int iwl_trans_pcie_suspend(struct iwl_trans *trans)
* But of course ... if we have configured WoWLAN then we did other
* things already :-)
*/
if (!trans->shrd->wowlan)
if (!trans->shrd->wowlan) {
iwl_apm_stop(priv(trans));
} else {
iwl_disable_interrupts(trans);
iwl_clear_bit(bus(trans), CSR_GP_CNTRL,
CSR_GP_CNTRL_REG_FLAG_MAC_ACCESS_REQ);
}

return 0;
}
Expand Down

0 comments on commit d36120c

Please sign in to comment.