diff options
author | hauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2013-08-17 13:38:30 +0000 |
---|---|---|
committer | hauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2013-08-17 13:38:30 +0000 |
commit | 8a179b4f384e639bdd4553efe696535c33f54ca4 (patch) | |
tree | 4fd904a075edf093fca6f4f533138d718301a751 /package/kernel/broadcom-wl/src/wlc.c | |
parent | 616273a38bf7bae098f4765f44a999ac29babc4c (diff) |
broadcom-wl: Add 'N' mode support to broadcom-wl
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 <nlhintz@hotmail.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@37802 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/kernel/broadcom-wl/src/wlc.c')
-rw-r--r-- | package/kernel/broadcom-wl/src/wlc.c | 41 |
1 files changed, 38 insertions, 3 deletions
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 { |