linux_dsm_epyc7002/drivers/net/wireless
Emmanuel Grumbach ed3e4c6d3c iwlwifi: fix RF-Kill interrupt while FW load for gen2 devices
Newest devices have a new firmware load mechanism. This
mechanism is called the context info. It means that the
driver doesn't need to load the sections of the firmware.
The driver rather prepares a place in DRAM, with pointers
to the relevant sections of the firmware, and the firmware
loads itself.
At the end of the process, the firmware sends the ALIVE
interrupt. This is different from the previous scheme in
which the driver expected the FH_TX interrupt after each
section being transferred over the DMA.

In order to support this new flow, we enabled all the
interrupts. This broke the assumption that we have in the
code that the RF-Kill interrupt can't interrupt the firmware
load flow.

Change the context info flow to enable only the ALIVE
interrupt, and re-enable all the other interrupts only
after the firmware is alive. Then, we won't see the RF-Kill
interrupt until then. Getting the RF-Kill interrupt while
loading the firmware made us kill the firmware while it is
loading and we ended up dumping garbage instead of the firmware
state.

Re-enable the ALIVE | RX interrupts from the ISR when we
get the ALIVE interrupt to be able to get the RX interrupt
that comes immediately afterwards for the ALIVE
notification. This is needed for non MSI-X only.

Cc: stable@vger.kernel.org
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2019-06-29 10:14:26 +03:00
..
admtek treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 501 2019-06-19 17:09:56 +02:00
ath wireless-drivers-next patches for 5.3 2019-06-26 10:12:17 -07:00
atmel treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
broadcom b43: simplify engine type / DMA mask selection 2019-06-27 14:37:30 +03:00
cisco airo: switch to skcipher interface 2019-06-25 08:12:20 +03:00
intel iwlwifi: fix RF-Kill interrupt while FW load for gen2 devices 2019-06-29 10:14:26 +03:00
intersil wireless-drivers-next patches for 5.3 2019-06-26 10:12:17 -07:00
marvell mwifiex: don't disable hardirqs; just softirqs 2019-06-27 19:50:58 +03:00
mediatek wireless-drivers-next patches for 5.3 2019-06-26 10:12:17 -07:00
quantenna qtnfmac: Use struct_size() in kzalloc() 2019-06-25 08:01:32 +03:00
ralink rt2800: do not enable watchdog by default 2019-06-25 08:10:13 +03:00
realtek rtw88: refine flow to get tx power index 2019-06-27 20:24:29 +03:00
rsi rsi: Properly initialize data in rsi_sdio_ta_reset 2019-05-28 14:31:36 +03:00
st treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
ti treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
zydas treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
mac80211_hwsim.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-06-22 08:59:24 -04:00
mac80211_hwsim.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
Makefile mac80211-next: rtnetlink wifi simulation device 2018-12-05 15:31:31 +01:00
ray_cs.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 416 2019-06-05 17:37:15 +02:00
ray_cs.h
rayctl.h
rndis_wlan.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 2019-05-21 11:28:45 +02:00
virt_wifi.c virt_wifi: Remove REGULATORY_WIPHY_SELF_MANAGED 2019-02-11 17:10:48 +01:00
wl3501_cs.c treewide: Add SPDX license identifier for more missed files 2019-05-21 10:50:45 +02:00
wl3501.h