aboutsummaryrefslogtreecommitdiffstats
path: root/src/drivers
diff options
context:
space:
mode:
authorDmitry Shmidt <dimitrysh@google.com>2011-09-28 13:29:53 -0700
committerArik Nemtsov <arik@wizery.com>2012-08-02 13:03:59 +0300
commitbe201aff6bffa92d639d7a7a070d47be33cddd6c (patch)
treee6ecfce8275c72309536e4e542fb913cd2e2670a /src/drivers
parentf9fba92add0c39f864ed19cb71fcdac1d7e00636 (diff)
downloadexternal_wpa_supplicant_8_ti-be201aff6bffa92d639d7a7a070d47be33cddd6c.zip
external_wpa_supplicant_8_ti-be201aff6bffa92d639d7a7a070d47be33cddd6c.tar.gz
external_wpa_supplicant_8_ti-be201aff6bffa92d639d7a7a070d47be33cddd6c.tar.bz2
nl80211: Add get_noa() support for WFD certification (BRCM)
BUG: b/5367351 Change-Id: I14ed79e10ade205c5dd4cdc0d2e888ed1279d1bb Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Diffstat (limited to 'src/drivers')
-rw-r--r--src/drivers/driver_nl80211.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
index 5ab292b..80121ea 100644
--- a/src/drivers/driver_nl80211.c
+++ b/src/drivers/driver_nl80211.c
@@ -9394,7 +9394,8 @@ static int wpa_driver_nl80211_driver_cmd(void *priv, char *cmd, char *buf,
ret = 0;
if ((os_strcasecmp(cmd, "LINKSPEED") == 0) ||
(os_strcasecmp(cmd, "RSSI") == 0) ||
- (os_strcasecmp(cmd, "GETBAND") == 0))
+ (os_strcasecmp(cmd, "GETBAND") == 0) ||
+ (os_strcasecmp(cmd, "P2P_GET_NOA") == 0))
ret = strlen(buf);
wpa_printf(MSG_DEBUG, "%s %s len = %d, %d", __func__,
@@ -9420,6 +9421,25 @@ static int wpa_driver_set_p2p_noa(void *priv, u8 count, int start,
}
+static int wpa_driver_get_p2p_noa(void *priv, u8 *buf, size_t len)
+{
+ char rbuf[MAX_DRV_CMD_SIZE];
+ char *cmd = "P2P_GET_NOA";
+ int ret;
+
+ wpa_printf(MSG_DEBUG, "%s: Entry", __func__);
+ os_memset(buf, 0, len);
+ ret = wpa_driver_nl80211_driver_cmd(priv, cmd, rbuf, sizeof(rbuf));
+ if (ret <= 0)
+ return 0;
+ ret >>= 1;
+ if (ret > (int)len)
+ ret = (int)len;
+ hexstr2bin(rbuf, buf, ret);
+ return ret;
+}
+
+
static int wpa_driver_set_ap_wps_p2p_ie(void *priv,
const struct wpabuf *beacon,
const struct wpabuf *proberesp,
@@ -9549,6 +9569,7 @@ const struct wpa_driver_ops wpa_driver_nl80211_ops = {
.tdls_oper = nl80211_tdls_oper,
#endif /* CONFIG_TDLS */
#ifdef ANDROID_BRCM_P2P_PATCH
+ .get_noa = wpa_driver_get_p2p_noa,
.set_noa = wpa_driver_set_p2p_noa,
.set_ap_wps_ie = wpa_driver_set_ap_wps_p2p_ie,
#endif /* ANDROID_BRCM_P2P_PATCH */