From dfc935acc97965729d1ef2b7e52925d3f20ca09b Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Sat, 24 Nov 2012 14:50:00 +0000 Subject: staging: vt6656: extend wireless definitions to v22 Signed-off-by: Malcolm Priestley Signed-off-by: Greg Kroah-Hartman diff --git a/drivers/staging/vt6656/iwctl.c b/drivers/staging/vt6656/iwctl.c index 1d44841..2cd8b0a 100644 --- a/drivers/staging/vt6656/iwctl.c +++ b/drivers/staging/vt6656/iwctl.c @@ -42,7 +42,6 @@ #include "control.h" #include "rndis.h" -#define SUPPORTED_WIRELESS_EXT 19 static const long frequency_list[] = { 2412, 2417, 2422, 2427, 2432, 2437, 2442, 2447, 2452, 2457, 2462, 2467, 2472, 2484, @@ -133,9 +132,9 @@ int iwctl_siwscan(struct net_device *dev, struct iw_request_info *info, pItemSSID = (PWLAN_IE_SSID)abyScanSSID; pItemSSID->byElementID = WLAN_EID_SSID; memcpy(pItemSSID->abySSID, req->essid, (int)req->essid_len); - if (pItemSSID->abySSID[req->essid_len - 1] == '\0') { + if (pItemSSID->abySSID[req->essid_len] == '\0') { if (req->essid_len > 0) - pItemSSID->len = req->essid_len - 1; + pItemSSID->len = req->essid_len; } else { pItemSSID->len = req->essid_len; } @@ -606,7 +605,7 @@ int iwctl_giwrange(struct net_device *dev, struct iw_request_info *info, range->txpower[0] = 100; range->num_txpower = 1; range->txpower_capa = IW_TXPOW_MWATT; - range->we_version_source = SUPPORTED_WIRELESS_EXT; + range->we_version_source = WIRELESS_EXT; range->we_version_compiled = WIRELESS_EXT; range->retry_capa = IW_RETRY_LIMIT | IW_RETRY_LIFETIME; range->retry_flags = IW_RETRY_LIMIT; @@ -801,9 +800,9 @@ int iwctl_siwessid(struct net_device *dev, struct iw_request_info *info, pItemSSID->byElementID = WLAN_EID_SSID; memcpy(pItemSSID->abySSID, extra, wrq->length); - if (pItemSSID->abySSID[wrq->length - 1] == '\0') { + if (pItemSSID->abySSID[wrq->length] == '\0') { if (wrq->length>0) - pItemSSID->len = wrq->length - 1; + pItemSSID->len = wrq->length; } else { pItemSSID->len = wrq->length; } @@ -1400,12 +1399,15 @@ int iwctl_giwpower(struct net_device *dev, struct iw_request_info *info, return 0; if ((wrq->flags & IW_POWER_TYPE) == IW_POWER_TIMEOUT) { - wrq->value = (int)((pMgmt->wListenInterval * pMgmt->wCurrBeaconPeriod) << 10); + wrq->value = (int)((pMgmt->wListenInterval * + pMgmt->wCurrBeaconPeriod) / 100); wrq->flags = IW_POWER_TIMEOUT; } else { - wrq->value = (int)((pMgmt->wListenInterval * pMgmt->wCurrBeaconPeriod) << 10); + wrq->value = (int)((pMgmt->wListenInterval * + pMgmt->wCurrBeaconPeriod) / 100); wrq->flags = IW_POWER_PERIOD; } + wrq->flags |= IW_POWER_ALL_R; return 0; } -- cgit v0.10.2