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: Victor Goldenshtein <victorg@ti.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
This commit is contained in:
committed by
John W. Linville
parent
fe3c094abc
commit
01b3c0e4df
@@ -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)
|
|||||||
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,
|
|||||||
/* 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)
|
||||||
|
Reference in New Issue
Block a user