mirror_ubuntu-kernels/drivers/net/wireless
Tony Lindgren cb88d01b67 wlcore: Fix command execute failure 19 for wl12xx
We can currently get a "command execute failure 19" error on beacon loss
if the signal is weak:

wlcore: Beacon loss detected. roles:0xff
wlcore: Connection loss work (role_id: 0).
...
wlcore: ERROR command execute failure 19
...
WARNING: CPU: 0 PID: 1552 at drivers/net/wireless/ti/wlcore/main.c:803
...
(wl12xx_queue_recovery_work.part.0 [wlcore])
(wl12xx_cmd_role_start_sta [wlcore])
(wl1271_op_bss_info_changed [wlcore])
(ieee80211_prep_connection [mac80211])

Error 19 is defined as CMD_STATUS_WRONG_NESTING from the wlcore firmware,
and seems to mean that the firmware no longer wants to see the quirk
handling for WLCORE_QUIRK_START_STA_FAILS done.

This quirk got added with commit 18eab43070 ("wlcore: workaround
start_sta problem in wl12xx fw"), and it seems that this already got fixed
in the firmware long time ago back in 2012 as wl18xx never had this quirk
in place to start with.

As we no longer even support firmware that early, to me it seems that it's
safe to just drop WLCORE_QUIRK_START_STA_FAILS to fix the error. Looks
like earlier firmware got disabled back in 2013 with commit 0e284c074e
("wl12xx: increase minimum singlerole firmware version required").

If it turns out we still need WLCORE_QUIRK_START_STA_FAILS with any
firmware that the driver works with, we can simply revert this patch and
add extra checks for firmware version used.

With this fix wlcore reconnects properly after a beacon loss.

Cc: Raz Bouganim <r-bouganim@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20210115065613.7731-1-tony@atomide.com
2021-01-25 16:42:12 +02:00
..
admtek adm8211: fix error return code in adm8211_probe() 2020-12-07 18:35:43 +02:00
ath Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git 2021-01-11 19:42:29 +02:00
atmel atmel: convert tasklets to use new tasklet_setup() API 2020-08-27 16:22:02 +03:00
broadcom brcmfmac: clear EAP/association status bits on linkdown events 2021-01-14 19:32:32 +02:00
cisco airo: Fix fall-through warnings for Clang 2020-12-08 10:06:53 +02:00
intel iwlwifi: fw: acpi: Demote non-conformant function headers 2020-12-11 20:24:27 +02:00
intersil orinoco: Annotate ezusb_read_ltv() 2020-11-24 17:01:19 +02:00
marvell mwifiex: pcie: Drop bogus __refdata annotation 2021-01-14 19:28:08 +02:00
mediatek mt7601u: use ieee80211_rx_list to pass frames to the network stack as a batch 2021-01-25 16:41:44 +02:00
microchip wilc1000: use flexible-array member instead of zero-length array 2021-01-14 19:33:02 +02:00
quantenna qtnfmac_pcie: Use module_pci_driver 2021-01-14 19:31:10 +02:00
ralink rt2x00: Fix fall-through warnings for Clang 2020-12-08 10:06:56 +02:00
realtek rtw88: 8723de: adjust the LTR setting 2021-01-25 16:41:10 +02:00
rsi rsi: fix error return code in rsi_reset_card() 2020-11-24 17:04:58 +02:00
st cw1200: txrx: convert comma to semicolon 2020-12-10 20:49:14 +02:00
ti wlcore: Fix command execute failure 19 for wl12xx 2021-01-25 16:42:12 +02:00
zydas zd1201: Fix fall-through warnings for Clang 2020-12-08 10:06:59 +02:00
Kconfig wireless: remove CONFIG_WIRELESS_WDS 2020-11-10 09:39:08 +01:00
mac80211_hwsim.c genetlink: move to smaller ops wherever possible 2020-10-02 19:11:11 -07:00
mac80211_hwsim.h
Makefile wilc1000: move wilc driver out of staging 2020-06-26 08:46:46 +03:00
ray_cs.c ray_cs: Use fallthrough pseudo-keyword 2020-11-07 13:30:09 +02:00
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
wl3501_cs.c wl3501_cs: Fix misspelling and provide missing documentation 2020-11-07 18:05:36 +02:00
wl3501.h