linux/drivers/net/wireless/intel/iwlwifi
Shahar S Matityahu 8954e1eb22 iwlwifi: trans: Clear persistence bit when starting the FW
In D3 suspend flow in 9260 gen2 HW, the NIC receives two PERST signals.
The first PERST is expected and indicates the device on coming resume flow.
The second PERST causes FW restart FW restart.
In order to avoid this issue, the FW set the persistence bit on.
Once this bit is set, the FW ignores reset attempts.
The problem is when the FW gets assert during D3 and then the persistence
bit is set and causes the FW to ignore reset.
To handle this issue, the FW opens the preg bit which allows access
to the persistence bit, so that the driver clear the persistence bit
and reset the NIC.

The flow is as follows:
the driver checks if the persistence bit is set.
If the bit is set, the driver checks if he can clear the bit.
If the driver can not clear the bit then there is no point to continue
configuring the NIC since it will fail.

The fix was added is in start HW flow instead of the resume flow since in
general, if the persistence bit is set, the driver can not start the FW.
So it is good to check it when we start configuring the NIC.

The driver does not need to close the preg bit since the FW close it
during the start flow.

Signed-off-by: Shahar S Matityahu <shahar.s.matityahu@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2018-11-11 11:06:15 +02:00
..
cfg wireless-drivers-next patches for 4.20 2018-10-07 10:31:24 -07:00
dvm iwlwifi: remove ucode error tracepoint 2018-09-28 08:57:22 +03:00
fw iwlwifi: dump debug data before stop device 2018-10-08 10:37:15 +03:00
mvm iwlwifi: mvm: remove queue_info_lock 2018-11-11 11:06:14 +02:00
pcie iwlwifi: trans: Clear persistence bit when starting the FW 2018-11-11 11:06:15 +02:00
iwl-agn-hw.h iwlwifi: remove all occurrences of the FSF address paragraph 2018-08-31 11:38:33 +03:00
iwl-config.h iwlwifi: fix devices with PCI Device ID 0x34F0 and 11ac RF modules 2018-08-31 11:38:42 +03:00
iwl-context-info-gen3.h iwlwifi: update gen3 interrupts - sw error and image response 2018-07-26 13:16:16 +03:00
iwl-context-info.h iwlwifi: pcie: set RB size according to user settings 2018-09-28 08:57:27 +03:00
iwl-csr.h iwlwifi: remove all occurrences of the FSF address paragraph 2018-08-31 11:38:33 +03:00
iwl-debug.c iwlwifi: remove all occurrences of the FSF address paragraph 2018-08-31 11:38:33 +03:00
iwl-debug.h iwlwifi: remove all occurrences of the FSF address paragraph 2018-08-31 11:38:33 +03:00
iwl-devtrace-data.h iwlwifi: trace: change trace to trace one TB at a time 2018-10-08 10:35:27 +03:00
iwl-devtrace-io.h iwlwifi: remove all occurrences of the FSF address paragraph 2018-08-31 11:38:33 +03:00
iwl-devtrace-iwlwifi.h iwlwifi: remove ucode error tracepoint 2018-09-28 08:57:22 +03:00
iwl-devtrace-msg.h iwlwifi: remove all occurrences of the FSF address paragraph 2018-08-31 11:38:33 +03:00
iwl-devtrace-ucode.h iwlwifi: remove all occurrences of the FSF address paragraph 2018-08-31 11:38:33 +03:00
iwl-devtrace.c iwlwifi: remove ucode error tracepoint 2018-09-28 08:57:22 +03:00
iwl-devtrace.h iwlwifi: add 80211 hdr offset to trace data 2018-08-31 11:38:29 +03:00
iwl-drv.c iwlwifi: add fall through comment 2018-10-06 10:25:51 +03:00
iwl-drv.h iwlwifi: remove all occurrences of the FSF address paragraph 2018-08-31 11:38:33 +03:00
iwl-eeprom-parse.c iwlwifi: Add missing 11n disable module parameter check 2018-08-31 11:38:36 +03:00
iwl-eeprom-parse.h iwlwifi: remove all occurrences of the FSF address paragraph 2018-08-31 11:38:33 +03:00
iwl-eeprom-read.c iwlwifi: remove all occurrences of the FSF address paragraph 2018-08-31 11:38:33 +03:00
iwl-eeprom-read.h iwlwifi: remove all occurrences of the FSF address paragraph 2018-08-31 11:38:33 +03:00
iwl-fh.h iwlwifi: remove all occurrences of the FSF address paragraph 2018-08-31 11:38:33 +03:00
iwl-io.c iwlwifi: remove all occurrences of the FSF address paragraph 2018-08-31 11:38:33 +03:00
iwl-io.h iwlwifi: remove all occurrences of the FSF address paragraph 2018-08-31 11:38:33 +03:00
iwl-modparams.h iwlwifi: remove all occurrences of the FSF address paragraph 2018-08-31 11:38:33 +03:00
iwl-nvm-parse.c iwlwifi: nvm: get num of hw addresses from firmware 2018-10-06 10:25:50 +03:00
iwl-nvm-parse.h iwlwifi: remove all occurrences of the FSF address paragraph 2018-08-31 11:38:33 +03:00
iwl-op-mode.h iwlwifi: remove all occurrences of the FSF address paragraph 2018-08-31 11:38:33 +03:00
iwl-phy-db.c iwlwifi: remove all occurrences of the FSF address paragraph 2018-08-31 11:38:33 +03:00
iwl-phy-db.h iwlwifi: remove all occurrences of the FSF address paragraph 2018-08-31 11:38:33 +03:00
iwl-prph.h iwlwifi: trans: Clear persistence bit when starting the FW 2018-11-11 11:06:15 +02:00
iwl-scd.h iwlwifi: remove all occurrences of the FSF address paragraph 2018-08-31 11:38:33 +03:00
iwl-trans.c iwlwifi: remove all occurrences of the FSF address paragraph 2018-08-31 11:38:33 +03:00
iwl-trans.h iwlwifi: dbg: move debug data to a struct 2018-10-06 10:25:42 +03:00
Kconfig iwlwifi: fix malformed CONFIG_IWLWIFI_PCIE_RTPM default 2018-03-02 10:20:03 +02:00
Makefile iwlwifi: mvm: remove dead gscan code 2018-08-02 10:50:08 +03:00