linux_dsm_epyc7002/drivers/net/wireless
Bing Zhao 48795424ac mwifiex: clear is_suspended flag when interrupt is received early
When the XO-4 with 8787 wireless is woken up due to wake-on-WLAN
mwifiex is often flooded with "not allowed while suspended" messages
and the interface is unusable.

[  202.171609] int: sdio_ireg = 0x1
[  202.180700] info: mwifiex_process_hs_config: auto cancelling host
               sleep since there is interrupt from the firmware
[  202.201880] event: wakeup device...
[  202.211452] event: hs_deactivated
[  202.514638] info: --- Rx: Data packet ---
[  202.514753] data: 4294957544 BSS(0-0): Data <= kernel
[  202.514825] PREP_CMD: device in suspended state
[  202.514839] data: dequeuing the packet ec7248c0 ec4869c0
[  202.514886] mwifiex_write_data_sync: not allowed while suspended
[  202.514886] host_to_card, write iomem (1) failed: -1
[  202.514917] mwifiex_write_data_sync: not allowed while suspended
[  202.514936] host_to_card, write iomem (2) failed: -1
[  202.514949] mwifiex_write_data_sync: not allowed while suspended
[  202.514965] host_to_card, write iomem (3) failed: -1
[  202.514976] mwifiex_write_data_async failed: 0xFFFFFFFF

This can be readily reproduced when putting the XO-4 in a loop where
it goes to sleep due to inactivity, but then wakes up due to an
incoming ping. The error is hit within an hour or two.

This issue happens when an interrupt comes in early while host sleep
is still activated. Driver handles this case by auto cancelling host
sleep. However is_suspended flag is still set which prevents any cmd
or data from being sent to firmware. Fix it by clearing is_suspended
flag in this path.

Cc: <stable@vger.kernel.org>
Reported-by: Daniel Drake <dsd@laptop.org>
Tested-by: Daniel Drake <dsd@laptop.org>
Signed-off-by: Bing Zhao <bzhao@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2013-05-08 17:15:08 -04:00
..
ath ath9k: Update initvals for AR9565 2013-05-08 17:15:08 -04:00
b43 B43: Handle DMA RX descriptor underrun 2013-05-08 17:15:06 -04:00
b43legacy mac80211: Use a cfg80211_chan_def in ieee80211_hw_conf_chan 2013-03-25 19:19:35 +01:00
brcm80211 brcmsmac: Fix merge issue 2013-04-26 08:42:22 -04:00
hostap net: wireless: hostap: hostap_ap.c: Return -ENOMEM instead of -1 for if kmalloc() fails. 2013-02-18 15:30:40 -05:00
ipw2x00 ipw2x00: move to kstrto* functions 2013-04-10 14:10:34 -04:00
iwlegacy iwl4965: workaround connection regression on passive channel 2013-05-08 17:15:07 -04:00
iwlwifi Merge branch 'for-john' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next 2013-04-26 08:37:39 -04:00
libertas Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless into for-davem 2013-03-01 13:52:03 -05:00
libertas_tf mac80211: Use a cfg80211_chan_def in ieee80211_hw_conf_chan 2013-03-25 19:19:35 +01:00
mwifiex mwifiex: clear is_suspended flag when interrupt is received early 2013-05-08 17:15:08 -04:00
orinoco orinoco_usb: don't release nonexistent firmware 2013-03-11 15:06:13 -04:00
p54 mac80211: Use a cfg80211_chan_def in ieee80211_hw_conf_chan 2013-03-25 19:19:35 +01:00
prism54 wireless: Remove unnecessary alloc/OOM messages, alloc cleanups 2013-02-04 13:22:34 -05:00
rt2x00 rt2x00: Use more current logging styles, shrink object size 2013-04-22 15:20:26 -04:00
rtl818x mac80211: Use a cfg80211_chan_def in ieee80211_hw_conf_chan 2013-03-25 19:19:35 +01:00
rtlwifi rtlwifi: rtl8192cu: Fix false loss of AP indication 2013-04-26 08:42:23 -04:00
ti Merge remote-tracking branch 'wireless-next/master' into mac80211-next 2013-04-22 15:31:43 +02:00
zd1211rw mac80211: Use a cfg80211_chan_def in ieee80211_hw_conf_chan 2013-03-25 19:19:35 +01:00
adm8211.c mac80211: Use a cfg80211_chan_def in ieee80211_hw_conf_chan 2013-03-25 19:19:35 +01:00
adm8211.h
airo_cs.c wireless: Remove unnecessary alloc/OOM messages, alloc cleanups 2013-02-04 13:22:34 -05:00
airo.c
airo.h
at76c50x-usb.c mac80211: Use a cfg80211_chan_def in ieee80211_hw_conf_chan 2013-03-25 19:19:35 +01:00
at76c50x-usb.h
atmel_cs.c wireless: Remove unnecessary alloc/OOM messages, alloc cleanups 2013-02-04 13:22:34 -05:00
atmel_pci.c
atmel.c
atmel.h
Kconfig drivers/net/wireless: remove depends on CONFIG_EXPERIMENTAL 2013-01-22 12:01:35 -08:00
mac80211_hwsim.c mac80211_hwsim: handle IEEE80211_HW_SUPPORTS_RC_TABLE 2013-04-22 16:19:16 +02:00
mac80211_hwsim.h
Makefile
mwl8k.c mwl8k: remove nonstandard rate 72 Mbps 2013-04-22 15:06:44 -04:00
ray_cs.c ray_cs: read past the end of the array 2013-03-06 16:25:47 -05:00
ray_cs.h
rayctl.h
rndis_wlan.c rndis_wlan: update email address 2013-03-08 15:58:54 -05:00
wl3501_cs.c
wl3501.h
zd1201.c hlist: drop the node parameter from iterators 2013-02-27 19:10:24 -08:00
zd1201.h