diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2018-03-13 14:12:40 +0200 |
---|---|---|
committer | Luca Coelho <luciano.coelho@intel.com> | 2018-08-02 10:50:07 +0300 |
commit | f98ad635c097c29339b7a7d6947173000485893d (patch) | |
tree | 93788059369e5b9c49d89968efc853eb648e3066 /drivers/net/wireless/intel/iwlwifi/fw/api/commands.h | |
parent | 8edbfaa19835cf0bd2a9b3e5e328ba20a927d10b (diff) |
iwlwifi: pcie: don't access periphery registers when not available
The periphery can't be accessed before we set the
INIT_DONE bit which initializes the device.
A previous patch added a reconfiguration of the MSI-X
tables upon resume, but at that point in the flow,
INIT_DONE wasn't set. Since the reconfiguration of the
MSI-X tables require periphery access, it failed.
The difference between WoWLAN and without WoWLAN is that
in WoWLAN, iwl_trans_pcie_d3_suspend clears the INIT_DONE
without clearing the STATUS_DEVICE_ENABLED bit in the
software status. Because of that, the resume code thinks
that the device is enabled, but the INIT_DONE bit has been
cleared.
To fix this, don't reconfigure the MSI-X tables in case
WoWLAN is enabled. It will be done in
iwl_trans_pcie_d3_resume anyway.
Fixes: 52848a79b9d2 ("iwlwifi: pcie: reconfigure MSI-X HW on resume")
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/fw/api/commands.h')
0 files changed, 0 insertions, 0 deletions