diff options
author | Kanchanapally, Vidyullatha <vkanchan@qti.qualcomm.com> | 2015-09-22 16:19:02 +0530 |
---|---|---|
committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2016-04-01 16:51:00 +0530 |
commit | d4770fe487a33f023afce15156bd6d87197c4130 (patch) | |
tree | 84a527be58e9de26e587be24a8f4b379f84a1f2e /src | |
parent | 16d9b87665d10942226da5afbc2e3944f0e64e66 (diff) | |
download | android_external_wpa_supplicant_8-d4770fe487a33f023afce15156bd6d87197c4130.tar.gz android_external_wpa_supplicant_8-d4770fe487a33f023afce15156bd6d87197c4130.tar.bz2 android_external_wpa_supplicant_8-d4770fe487a33f023afce15156bd6d87197c4130.zip |
nl80211: Extract driver offchannel simultaneous capability
Make the driver offchannel simultaneous capability available to
wpa_supplicant.
Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Git-commit: 8e5097456af34c43beee03e63ef7ab10aabd9680
Git-repo: git://w1.fi/srv/git/hostap.git
Change-Id: I76dbc6b6f9d871b3703030f0e204eb10ccc90fa3
CRs-fixed: 909284
Diffstat (limited to 'src')
-rw-r--r-- | src/drivers/driver.h | 2 | ||||
-rw-r--r-- | src/drivers/driver_nl80211_capa.c | 14 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/drivers/driver.h b/src/drivers/driver.h index 31cb23f1..b2df1a73 100644 --- a/src/drivers/driver.h +++ b/src/drivers/driver.h @@ -1214,6 +1214,8 @@ struct wpa_driver_capa { #define WPA_DRIVER_FLAGS_VHT_IBSS 0x0000002000000000ULL /** Driver supports automatic band selection */ #define WPA_DRIVER_FLAGS_SUPPORT_HW_MODE_ANY 0x0000004000000000ULL +/** Driver supports simultaneous off-channel operations */ +#define WPA_DRIVER_FLAGS_OFFCHANNEL_SIMULTANEOUS 0x0000008000000000ULL u64 flags; #define WPA_DRIVER_SMPS_MODE_STATIC 0x00000001 diff --git a/src/drivers/driver_nl80211_capa.c b/src/drivers/driver_nl80211_capa.c index 4adc95b3..7b0e81d9 100644 --- a/src/drivers/driver_nl80211_capa.c +++ b/src/drivers/driver_nl80211_capa.c @@ -843,6 +843,10 @@ static void qca_nl80211_get_features(struct wpa_driver_nl80211_data *drv) if (check_feature(QCA_WLAN_VENDOR_FEATURE_SUPPORT_HW_MODE_ANY, &info)) drv->capa.flags |= WPA_DRIVER_FLAGS_SUPPORT_HW_MODE_ANY; + + if (check_feature(QCA_WLAN_VENDOR_FEATURE_OFFCHANNEL_SIMULTANEOUS, + &info)) + drv->capa.flags |= WPA_DRIVER_FLAGS_OFFCHANNEL_SIMULTANEOUS; } @@ -928,6 +932,16 @@ int wpa_driver_nl80211_capa(struct wpa_driver_nl80211_data *drv) qca_nl80211_check_dfs_capa(drv); qca_nl80211_get_features(drv); + /* + * To enable offchannel simultaneous support in wpa_supplicant, the + * underlying driver needs to support the same along with offchannel TX. + * Offchannel TX support is needed since remain_on_channel and + * action_tx use some common data structures and hence cannot be + * scheduled simultaneously. + */ + if (!(drv->capa.flags & WPA_DRIVER_FLAGS_OFFCHANNEL_TX)) + drv->capa.flags &= ~WPA_DRIVER_FLAGS_OFFCHANNEL_SIMULTANEOUS; + return 0; } |