From e12b5ec8df924138e6546c2abe3b42bf5b0a96c3 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sat, 17 Aug 2013 13:38:30 +0000 Subject: broadcom-wl: Add 'N' mode support to broadcom-wl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is partly based on patches sent by Ɓukasz Kwestarz (See https://lists.openwrt.org/pipermail/openwrt-devel/2012-March/014356.html). Signed-off-by: Nathan Hintz Signed-off-by: Hauke Mehrtens SVN-Revision: 37802 --- package/kernel/broadcom-wl/src/wlc.c | 41 +++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) (limited to 'package/kernel/broadcom-wl/src') diff --git a/package/kernel/broadcom-wl/src/wlc.c b/package/kernel/broadcom-wl/src/wlc.c index 253809c9a3..7e638e5c6f 100644 --- a/package/kernel/broadcom-wl/src/wlc.c +++ b/package/kernel/broadcom-wl/src/wlc.c @@ -499,8 +499,8 @@ static int wlc_pmk(wlc_param param, void *data, void *value) /* driver doesn't support GET */ if ((param & PARAM_MODE) == SET) { - strncpy(pmk.key, value, WSEC_MAX_PSK_LEN); - pmk.key_len = strlen(value); + strncpy(pmk.key, str, WSEC_MAX_PSK_LEN); + pmk.key_len = strlen(str); if (pmk.key_len > WSEC_MAX_PSK_LEN) pmk.key_len = WSEC_MAX_PSK_LEN; @@ -912,6 +912,41 @@ static const struct wlc_call wlc_calls[] = { .handler = wlc_ioctl, .desc = "G Mode" }, + { + .name = "phytype", + .param = INT, + .data.num = (WLC_GET_PHYTYPE << 16), + .handler = wlc_ioctl, + .desc = "PHY Type" + }, + { + .name = "nmode", + .param = INT, + .handler = wlc_iovar, + .data.str = "nmode", + .desc = "N Mode" + }, + { + .name = "nreqd", + .param = INT, + .handler = wlc_iovar, + .data.str = "nreqd", + .desc = "N Mode required" + }, + { + .name = "chanspec", + .param = INT, + .handler = wlc_iovar, + .data.str = "chanspec", + .desc = "Channel Spec (See bcmwifi.h)" + }, + { + .name = "band", + .param = INT, + .data.num = ((WLC_GET_BAND << 16) | WLC_SET_BAND), + .handler = wlc_ioctl, + .desc = "Band" + }, }; #define wlc_calls_size (sizeof(wlc_calls) / sizeof(struct wlc_call)) @@ -971,7 +1006,7 @@ static int do_command(const struct wlc_call *cmd, char *arg) set = 1; switch(cmd->param & PARAM_TYPE) { case INT: - intval = strtoul(arg, &end, 10); + intval = strtoul(arg, &end, 0); if (end && !(*end)) { memcpy(buf, &intval, sizeof(intval)); } else { -- cgit v1.2.3