staging: vt6656: extend wireless definitions to v22
authorMalcolm Priestley <tvboxspy@gmail.com>
Sat, 24 Nov 2012 14:50:00 +0000 (14:50 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 27 Nov 2012 00:24:16 +0000 (16:24 -0800)
Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/vt6656/iwctl.c

index 1d44841c67279a1c34378c6ae653e7c95a4df8d0..2cd8b0a6b3a1d32a6eff6944669d2b5376a03b34 100644 (file)
@@ -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;
 }