Browse Source

iwlwifi: pcie: reconfigure MSI-X HW on resume

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>
Johannes Berg 8 years ago
parent
commit
52848a79b9
1 changed files with 3 additions and 0 deletions
  1. 3 0
      drivers/net/wireless/intel/iwlwifi/pcie/drv.c

+ 3 - 0
drivers/net/wireless/intel/iwlwifi/pcie/drv.c

@@ -799,6 +799,9 @@ static int iwl_pci_resume(struct device *device)
 	if (!trans->op_mode)
 	if (!trans->op_mode)
 		return 0;
 		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
 	 * Enable rfkill interrupt (in order to keep track of the rfkill
 	 * status). Must be locked to avoid processing a possible rfkill
 	 * status). Must be locked to avoid processing a possible rfkill