mirror_ubuntu-kernels/drivers/net/wireless
Tony Lindgren 11ef6bc846 wlcore/wl12xx: Fix wl12xx get_mac error if device is in ELP
At least on wl12xx, reading the MAC after boot can fail with a warning
at drivers/net/wireless/ti/wlcore/sdio.c:78 wl12xx_sdio_raw_read.
The failed call comes from wl12xx_get_mac() that wlcore_nvs_cb() calls
after request_firmware_work_func().

After the error, no wireless interface is created. Reloading the wl12xx
module makes the interface work.

Turns out the wlan controller can be in a low-power ELP state after the
boot from the bootloader or kexec, and needs to be woken up first.

Let's wake the hardware and add a sleep after that similar to
wl12xx_pre_boot() is already doing.

Note that a similar issue could exist for wl18xx, but I have not seen it
so far. And a search for wl18xx_get_mac and wl12xx_sdio_raw_read did not
produce similar errors.

Cc: Carl Philipp Klemm <philipp@uvos.xyz>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20210603062814.19464-1-tony@atomide.com
2021-06-14 18:47:40 +03:00
..
admtek module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
ath Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git 2021-05-31 17:29:39 +03:00
atmel module: remove never implemented MODULE_SUPPORTED_DEVICE 2021-03-17 13:16:18 -07:00
broadcom b43legacy: Fix spelling mistake "overflew" -> "overflowed" 2021-06-03 12:31:53 +03:00
cisco airo: work around stack usage warning 2021-04-17 21:02:28 +03:00
intel ipw2x00: Minor documentation update 2021-06-03 12:33:55 +03:00
intersil treewide: remove editor modelines and cruft 2021-05-07 00:26:34 -07:00
marvell libertas: register sysfs groups properly 2021-05-13 18:32:32 +02:00
mediatek mt76: mt7921: reinit wpdma during drv_own if necessary 2021-04-21 20:55:56 +02:00
microchip wilc1000: Remove duplicate struct declaration 2021-04-18 09:33:09 +03:00
quantenna qtnfmac: Fix possible buffer overflow in qtnf_event_handle_external_auth 2021-04-22 17:40:12 +03:00
ralink of: net: pass the dst buffer to of_get_mac_address() 2021-04-13 14:35:02 -07:00
realtek net: rtlwifi: properly check for alloc_workqueue() failure 2021-05-13 17:30:26 +02:00
rsi rsi: Use resume_noirq for SDIO 2021-04-18 09:31:50 +03:00
st cw1200: Remove unused function pointer typedef wsm_* 2021-04-17 20:25:54 +03:00
ti wlcore/wl12xx: Fix wl12xx get_mac error if device is in ELP 2021-06-14 18:47:40 +03:00
zydas zd1201: Fix fall-through warnings for Clang 2020-12-08 10:06:59 +02:00
Kconfig
mac80211_hwsim.c wireless: fix spelling of A-MSDU in HE capabilities 2021-04-19 12:50:15 +02:00
mac80211_hwsim.h
Makefile
ray_cs.c
ray_cs.h
rayctl.h
rndis_wlan.c net: usb: switch to dev_get_tstats64 and remove usbnet_get_stats64 alias 2020-11-12 14:58:27 -08:00
virt_wifi.c virt_wifi: Return micros for BSS TSF values 2021-04-08 10:14:57 +02:00
wl3501_cs.c wl3501_cs: Fix out-of-bounds warnings in wl3501_mgmt_join 2021-04-22 17:38:41 +03:00
wl3501.h wl3501_cs: Fix out-of-bounds warnings in wl3501_mgmt_join 2021-04-22 17:38:41 +03:00