Commit 01b3c0e4 authored by Victor Goldenshtein's avatar Victor Goldenshtein Committed by John W. Linville

wlcore: enable sched scan while connected

New wl12xx firmware supports scheduled scans also while connected.
Stop blocking sched scan requests when connected and add a quirk to
block in hardware that don't support it (currently wl18xx doesn't).

This requires FW version 6/7.3.10.2.112 for single-role and
6/7.5.6.0.25 for multi-role.
Signed-off-by: default avatarVictor Goldenshtein <victorg@ti.com>
Signed-off-by: default avatarLuciano Coelho <coelho@ti.com>
parent fe3c094a
...@@ -609,6 +609,7 @@ static int wl18xx_identify_chip(struct wl1271 *wl) ...@@ -609,6 +609,7 @@ static int wl18xx_identify_chip(struct wl1271 *wl)
wl->quirks |= WLCORE_QUIRK_NO_ELP | wl->quirks |= WLCORE_QUIRK_NO_ELP |
WLCORE_QUIRK_RX_BLOCKSIZE_ALIGN | WLCORE_QUIRK_RX_BLOCKSIZE_ALIGN |
WLCORE_QUIRK_TX_BLOCKSIZE_ALIGN | WLCORE_QUIRK_TX_BLOCKSIZE_ALIGN |
WLCORE_QUIRK_NO_SCHED_SCAN_WHILE_CONN |
WLCORE_QUIRK_TX_PAD_LAST_FRAME; WLCORE_QUIRK_TX_PAD_LAST_FRAME;
break; break;
case CHIP_ID_185x_PG10: case CHIP_ID_185x_PG10:
......
...@@ -766,7 +766,8 @@ int wl1271_scan_sched_scan_start(struct wl1271 *wl, struct wl12xx_vif *wlvif) ...@@ -766,7 +766,8 @@ int wl1271_scan_sched_scan_start(struct wl1271 *wl, struct wl12xx_vif *wlvif)
if (wlvif->bss_type != BSS_TYPE_STA_BSS) if (wlvif->bss_type != BSS_TYPE_STA_BSS)
return -EOPNOTSUPP; return -EOPNOTSUPP;
if (test_bit(WLVIF_FLAG_IN_USE, &wlvif->flags)) if ((wl->quirks & WLCORE_QUIRK_NO_SCHED_SCAN_WHILE_CONN) &&
test_bit(WLVIF_FLAG_IN_USE, &wlvif->flags))
return -EBUSY; return -EBUSY;
start = kzalloc(sizeof(*start), GFP_KERNEL); start = kzalloc(sizeof(*start), GFP_KERNEL);
......
...@@ -437,6 +437,9 @@ wlcore_set_ht_cap(struct wl1271 *wl, enum ieee80211_band band, ...@@ -437,6 +437,9 @@ wlcore_set_ht_cap(struct wl1271 *wl, enum ieee80211_band band,
/* extra header space is required for TKIP */ /* extra header space is required for TKIP */
#define WLCORE_QUIRK_TKIP_HEADER_SPACE BIT(8) #define WLCORE_QUIRK_TKIP_HEADER_SPACE BIT(8)
/* Some firmwares not support sched scans while connected */
#define WLCORE_QUIRK_NO_SCHED_SCAN_WHILE_CONN BIT(9)
/* TODO: move to the lower drivers when all usages are abstracted */ /* TODO: move to the lower drivers when all usages are abstracted */
#define CHIP_ID_1271_PG10 (0x4030101) #define CHIP_ID_1271_PG10 (0x4030101)
#define CHIP_ID_1271_PG20 (0x4030111) #define CHIP_ID_1271_PG20 (0x4030111)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment