From d7edab78ddecd5492c22006c1b1e23c6c6b2a479 Mon Sep 17 00:00:00 2001 From: Dmitry Shmidt Date: Tue, 27 Sep 2011 15:27:55 -0700 Subject: bcm4329: bcmdhd: Add signal_poll command support Change-Id: I0ccd9e39928c3e51f1350d2ab34e47ea3191ed0b Signed-off-by: Dmitry Shmidt --- bcmdhd/wpa_supplicant_8_lib/driver_cmd_wext.c | 32 ++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) (limited to 'bcmdhd/wpa_supplicant_8_lib') diff --git a/bcmdhd/wpa_supplicant_8_lib/driver_cmd_wext.c b/bcmdhd/wpa_supplicant_8_lib/driver_cmd_wext.c index aa2fb4a..70a8157 100644 --- a/bcmdhd/wpa_supplicant_8_lib/driver_cmd_wext.c +++ b/bcmdhd/wpa_supplicant_8_lib/driver_cmd_wext.c @@ -289,7 +289,7 @@ int wpa_driver_wext_driver_cmd( void *priv, char *cmd, char *buf, size_t buf_len } if (os_strcasecmp(cmd, "RSSI-APPROX") == 0) { - os_strncpy(cmd, "RSSI", MAX_DRV_CMD_SIZE); + os_strncpy(cmd, RSSI_CMD, MAX_DRV_CMD_SIZE); } else if( os_strncasecmp(cmd, "SCAN-CHANNELS", 13) == 0 ) { int no_of_chan; @@ -342,8 +342,8 @@ int wpa_driver_wext_driver_cmd( void *priv, char *cmd, char *buf, size_t buf_len } else { drv->errors = 0; ret = 0; - if ((os_strcasecmp(cmd, "RSSI") == 0) || - (os_strcasecmp(cmd, "LINKSPEED") == 0) || + if ((os_strcasecmp(cmd, RSSI_CMD) == 0) || + (os_strcasecmp(cmd, LINKSPEED_CMD) == 0) || (os_strcasecmp(cmd, "MACADDR") == 0) || (os_strcasecmp(cmd, "GETPOWER") == 0) || (os_strcasecmp(cmd, "GETBAND") == 0)) { @@ -364,3 +364,29 @@ int wpa_driver_wext_driver_cmd( void *priv, char *cmd, char *buf, size_t buf_len } return ret; } + +int wpa_driver_signal_poll(void *priv, struct wpa_signal_info *si) +{ + char buf[MAX_DRV_CMD_SIZE]; + struct wpa_driver_wext_data *drv = priv; + char *prssi; + int res; + + os_memset(si, 0, sizeof(*si)); + res = wpa_driver_wext_driver_cmd(priv, RSSI_CMD, buf, sizeof(buf)); + /* Answer: SSID rssi -Val */ + if (res < 0) + return res; + prssi = strcasestr(buf, RSSI_CMD); + if (!prssi) + return -1; + si->current_signal = atoi(prssi + strlen(RSSI_CMD) + 1); + + res = wpa_driver_wext_driver_cmd(priv, LINKSPEED_CMD, buf, sizeof(buf)); + /* Answer: LinkSpeed Val */ + if (res < 0) + return res; + si->current_txrate = atoi(buf + strlen(LINKSPEED_CMD) + 1) * 1000; + + return 0; +} -- cgit v1.1