iwlwifi: pcie: reconfigure MSI-X HW on resume
authorJohannes Berg <johannes.berg@intel.com>
Tue, 20 Jun 2017 10:51:30 +0000 (12:51 +0200)
committerLuca Coelho <luciano.coelho@intel.com>
Thu, 29 Jun 2017 17:40:05 +0000 (20:40 +0300)
When going into suspend, the HW configuration for MSI-X will
likely be lost. As a consequence, after waking up, all IRQ
causes will be mapped to interrupt 0, and as a consequence we
don't notice the interrupt because in most cases this is an
interrupt for a queue, and getting it doesn't read the other
cause registers.

Fixes: 2e5d4a8f61dc ("iwlwifi: pcie: Add new configuration to enable MSIX")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
drivers/net/wireless/intel/iwlwifi/pcie/drv.c

index 3ca0f374c0816c55e1fc24b8a05f003306fe5433..f16c1bb9bf94b6bef6bfb6ce2ff36c3faf771c00 100644 (file)
@@ -799,6 +799,9 @@ static int iwl_pci_resume(struct device *device)
        if (!trans->op_mode)
                return 0;
 
+       /* reconfigure the MSI-X mapping to get the correct IRQ for rfkill */
+       iwl_pcie_conf_msix_hw(trans_pcie);
+
        /*
         * Enable rfkill interrupt (in order to keep track of the rfkill
         * status). Must be locked to avoid processing a possible rfkill