linux_dsm_epyc7002/drivers/net/wireless
Daniel Mack 7444a80929 libertas: fix suspend and resume for SDIO connected cards
Prior to commit 573185cc7e ("mmc: core: Invoke sdio func driver's PM
callbacks from the sdio bus"), the MMC core used to call into the power
management functions of SDIO clients itself and removed the card if the
return code was non-zero. IOW, the mmc handled errors gracefully and didn't
upchain them to the pm core.

Since this change, the mmc core relies on generic power management
functions which treat all errors as a reason to cancel the suspend
immediately. This causes suspend attempts to fail when the libertas
driver is loaded.

To fix this, power down the card explicitly in if_sdio_suspend() when we
know we're about to lose power and return success. Also set a flag in these
cases, and power up the card again in if_sdio_resume().

Fixes: 573185cc7e ("mmc: core: Invoke sdio func driver's PM callbacks from the sdio bus")
Cc: <stable@vger.kernel.org>
Signed-off-by: Daniel Mack <daniel@zonque.org>
Reviewed-by: Chris Ball <chris@printf.net>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
2018-07-04 18:12:46 +03:00
..
admtek net/wireless: fix spaces and grammar copy/paste in vendor Kconfig help text 2018-03-13 18:52:25 +02:00
ath wireless-drivers: use BIT_ULL for NL80211_STA_INFO_ attribute types 2018-06-27 19:07:39 +03:00
atmel atmel: use memdup_user to simplify the code 2018-06-27 19:06:00 +03:00
broadcom brcmfmac: update STA info struct to the v5 2018-07-04 18:08:06 +03:00
cisco treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
intel ipw2x00: track time using boottime 2018-06-27 19:10:25 +03:00
intersil treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
marvell libertas: fix suspend and resume for SDIO connected cards 2018-07-04 18:12:46 +03:00
mediatek mt76: improve gain adjustment in noisy environments 2018-06-27 19:15:14 +03:00
quantenna wireless-drivers: use BIT_ULL for NL80211_STA_INFO_ attribute types 2018-06-27 19:07:39 +03:00
ralink treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
realtek treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
rsi rsi: fix spelling mistake "Uknown" -> "Unknown" 2018-05-29 10:21:35 +03:00
st treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
ti wireless-drivers: use BIT_ULL for NL80211_STA_INFO_ attribute types 2018-06-27 19:07:39 +03:00
zydas zd1211rw: use irqsave() in USB's complete callback 2018-06-27 19:12:43 +03:00
Kconfig qtnfmac: introduce new FullMAC driver for Quantenna chipsets 2017-05-24 17:04:13 +03:00
mac80211_hwsim.c mac80211_hwsim: fix module init error paths 2018-06-15 13:02:02 +02:00
mac80211_hwsim.h mac80211_hwsim: add permanent mac address option for new radios 2018-01-31 12:45:35 +01:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ray_cs.c proc: introduce proc_create_single{,_data} 2018-05-16 07:23:35 +02:00
ray_cs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rayctl.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
rndis_wlan.c wireless-drivers: use BIT_ULL for NL80211_STA_INFO_ attribute types 2018-06-27 19:07:39 +03:00
wl3501_cs.c wl3501_cs: fix spelling mistake: "Insupported" -> "Unsupported" 2017-07-28 18:06:31 +03:00
wl3501.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00