iwlwifi: pcie: properly reset the device
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Fri, 14 Nov 2014 15:29:47 +0000 (07:29 -0800)
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>
Sun, 23 Nov 2014 18:07:37 +0000 (20:07 +0200)
commit522713c81e4ec98c554d74bcf8c26ddbfa6a30ee
treea92c5e2173ceeacd846d56207d35853e75b9663c
parenteffd05ac479b80641835f9126bbe93146686c2b8
iwlwifi: pcie: properly reset the device

We were toggling the wrong bit when we reset the device,
fix that. Moreover, since the reset can take time, we need
to wait before we set the rfkill interrupt. Not doing so
can be racy since the driver is enabling the rfkill
interrupt while the device is resetting which will clear
all the registers including the CSR_INT_MASK.
This can basically lead to a situation where we don't
enable the rfkill interrupt. If that happens, the user will
not be able to re-enable the device when de-asserting
rfkill.

This scenario happened to the submitter of:
https://bugzilla.kernel.org/show_bug.cgi?id=87191

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
drivers/net/wireless/iwlwifi/pcie/trans.c