Merge branch 'libertas' of git://git.kernel.org/pub/scm/linux/kernel/git/linville...
authorJeff Garzik <jeff@garzik.org>
Fri, 11 May 2007 21:54:19 +0000 (17:54 -0400)
committerJeff Garzik <jeff@garzik.org>
Fri, 11 May 2007 21:54:19 +0000 (17:54 -0400)
22 files changed:
drivers/net/wireless/libertas/Makefile
drivers/net/wireless/libertas/README
drivers/net/wireless/libertas/assoc.c
drivers/net/wireless/libertas/cmd.c
drivers/net/wireless/libertas/cmdresp.c
drivers/net/wireless/libertas/debugfs.c
drivers/net/wireless/libertas/defs.h
drivers/net/wireless/libertas/dev.h
drivers/net/wireless/libertas/fw.c
drivers/net/wireless/libertas/if_usb.c
drivers/net/wireless/libertas/if_usb.h
drivers/net/wireless/libertas/ioctl.c
drivers/net/wireless/libertas/join.c
drivers/net/wireless/libertas/join.h
drivers/net/wireless/libertas/main.c
drivers/net/wireless/libertas/rx.c
drivers/net/wireless/libertas/scan.c
drivers/net/wireless/libertas/scan.h
drivers/net/wireless/libertas/tx.c
drivers/net/wireless/libertas/version.h
drivers/net/wireless/libertas/wext.c
drivers/net/wireless/libertas/wext.h

index 19c935071d8ede8dd08aa805f51b10cc5945805f..56a8ea1fbf041a6c24d8baea4efd298c089bb248 100644 (file)
@@ -1,5 +1,3 @@
-# EXTRA_CFLAGS += -Wpacked
-
 usb8xxx-objs := main.o fw.o wext.o \
                rx.o tx.o cmd.o           \
                cmdresp.o scan.o          \
@@ -7,13 +5,6 @@ usb8xxx-objs := main.o fw.o wext.o \
                ioctl.o debugfs.o         \
                ethtool.o assoc.o
 
-ifeq ($(CONFIG_LIBERTAS_USB_DEBUG), y)
-EXTRA_CFLAGS += -DDEBUG -DPROC_DEBUG
-endif
-
-
-# This is needed to support the newer boot2 bootloader (v >= 3104)
-EXTRA_CFLAGS += -DSUPPORT_BOOT_COMMAND
 usb8xxx-objs += if_bootcmd.o
 usb8xxx-objs += if_usb.o
 
index 688da4c784b10cc6baaa200364bfe925de5e6d8d..378577200b56c5f3e81fe849c1c8d44aecb81723 100644 (file)
@@ -40,64 +40,11 @@ NAME
 SYNOPSIS
        iwpriv <ethX> <command> [sub-command] ...
 
-       iwpriv ethX version
-       iwpriv ethX scantype [sub-command]
-       iwpriv ethX getSNR <n>
-       iwpriv ethX getNF <n>
-       iwpriv ethX getRSSI <n>
-       iwpriv ethX setrxant <n>
-       iwpriv ethX getrxant
-       iwpriv ethX settxant <n>
-       iwpriv ethX gettxant
-       iwpriv ethX authalgs <n>
-       iwpriv ethX pre-TBTT <n>
-       iwpriv ethX 8021xauthalgs <n>
-       iwpriv ethX encryptionmode <n>
        iwpriv ethX setregioncode <n>
        iwpriv ethX getregioncode
-       iwpriv ethX setbcnavg <n>
-       iwpriv ethX getbcnavg
-       iwpriv ethX setdataavg <n>
-       iwpriv ethX setlisteninter <n>
-       iwpriv ethX getlisteninter
-       iwpriv ethX setmultipledtim <n>
-       iwpriv ethX getmultipledtim
-       iwpriv ethX atimwindow <n>
-       iwpriv ethX deauth
-       iwpriv ethX adhocstop
-       iwpriv ethX radioon
-       iwpriv ethX radiooff
-       iwpriv ethX reasso-on
-       iwpriv ethX reasso-off
-       iwpriv ethX scanmode  [sub-command]
-       iwpriv ethX setwpaie <n>
-       iwpriv ethX wlanidle-off
-       iwpriv ethX wlanidle-on
-       iwpriv ethX getcis
-       iwpriv ethX getlog
-       iwpriv ethX getadhocstatus
-       iwpriv ethX adhocgrate <n>
-
-Version 4 Command:
-       iwpriv ethX inactvityto <n>
-       iwpriv ethX sleeppd <n>
-       iwpriv ethX enable11d <n>
-       iwpriv ethX tpccfg <n>
-       iwpriv ethX powercfg <n>
-       iwpriv ethX setafc <n>
-       iwpriv ethX getafc
 
 Version 5 Command:
        iwpriv ethX ledgpio <n>
-       iwpriv ethX scanprobes <n>
-       iwpriv ethX lolisteninter <n>
-       iwpriv ethX rateadapt <n> <m>
-       iwpriv ethX txcontrol <n>
-       iwpriv ethX psnullinterval <n>
-       iwpriv ethX prescan <n>
-       iwpriv ethX getrxinfo
-       iwpriv ethX gettxrate
-       iwpriv ethX beaconinterval
 
 BT Commands:
        The blinding table (BT) contains a list of mac addresses that should be
@@ -150,114 +97,6 @@ DESCRIPTION
        The ethX parameter specifies the network device that is to be used to
                perform this command on. it could be eth0, eth1 etc.
 
-version
-       This is used to get the current version of the driver and the firmware.
-
-scantype
-       This command is used to set the scan type to be used by the driver in
-       the scan command. This setting will not be used while performing a scan
-       for a specific SSID, as it is always done with scan type being active.
-
-       where the sub-commands are: -
-                       active  -- to set the scan type to active
-                       passive -- to set the scan type to passive
-                       get     -- to get the scan type set in the driver
-
-getSNR
-       This command gets the average and non average value of Signal to Noise
-       Ratio of Beacon and Data.
-
-       where value is:-
-                       0       -- Beacon non-average.
-                       1       -- Beacon average.
-                       2       -- Data non-average.
-                       3       -- Data average.
-
-       If no value is given, all four values are returned in the order mentioned
-       above.
-
-       Note: This command is available only when STA is connected.
-
-getRSSI
-       This command gets the average and non average value os Receive Signal
-       Strength of Beacon and Data.
-
-       where value is:-
-                       0       -- Beacon non-average.
-                       1       -- Beacon average.
-                       2       -- Data non-average.
-                       3       -- Data average.
-
-       Note: This command is available only when STA is connected.
-
-getNF
-       This command gets the average and non average value of Noise Floor of
-       Beacon and Data.
-
-       where value is:-
-                       0       -- Beacon non-average.
-                       1       -- Beacon average.
-                       2       -- Data non-average.
-                       3       -- Data average.
-
-       Note: This command is available only when STA is connected.
-
-setrxant
-       This command is used to set the mode for Rx antenna.
-
-       The options that can be sent are:-
-                       1       -- Antenna 1.
-                       2       -- Antenna 2.
-                       0xFFFF  -- Diversity.
-
-       Usage:
-               iwpriv ethX setrxant 0x01: select Antenna 1.
-
-getrxant
-       This command is used to get the mode for Rx antenna.
-
-
-settxant
-       This command is used to set the mode for Tx antenna.
-               The options that can be sent are:-
-                       1       -- Antenna 1.
-                       2       -- Antenna 2.
-                       0xFFFF  -- Diversity.
-       Usage:
-               iwpriv ethX settxant 0x01: select Antenna 1.
-
-gettxant
-       This command is used to get the mode for Tx antenna.
-
-authalgs
-       This command is used by the WPA supplicant to set the authentication
-       algorithms in the station.
-
-8021xauthalgs
-       This command is used by the WPA supplicant to set the 8021.x authentication algorithm type
-       station.
-
-       where values can be:-
-                       1       -- None
-                       2       -- LEAP
-                       4       -- TLS
-                       8       -- TTLs
-                       16      -- MD5
-
-
-encryptionmode
-       This command is used by the WPA supplicant to set the encryption algorithm.
-
-       where values can be:-
-                       0       -- NONE
-                       1       -- WEP40
-                       2       -- TKIP
-                       3       -- CCMP
-                       4       -- WEP104
-
-pre-TBTT
-       This command is used to set pre-TBTT time period where value is in microseconds.
-
 setregioncode
        This command is used to set the region code in the station.
        where value is 'region code' for various regions like
@@ -270,114 +109,6 @@ getregioncode
        This command is used to get the region code information set in the
        station.
 
-setbcnavg
-       Set the weighting factor for calculating RSSI.
-
-getbcnavg
-       Get weighting factor for calculating RSSI.
-
-setdataavg
-       Set the weighting factor for calculating SNR.
-
-setlisteninter
-       This command is used to set the listen interval in the
-       station.
-
-       where the value ranges between 1 - 255
-
-getlisteninter
-       This command is used to get the listen interval value set in the
-       station.
-
-setmultipledtim
-       This command is used to set the multiple dtim value in the
-       station.
-               where the value is 1,2,3,4,5,0xfffe
-               0xfffe means the firmware will use listen interval in association
-               command for waking up
-
-getmultipledtim
-       This command is used to get the multiple dtim value set in the station.
-
-atimwindow
-       This command is used to set the atim value in the
-       station.
-
-       where the value ranges between 0 - 50
-
-deauth
-       This command is used to send the de-authentication to the AP with which
-       the station is associated. This command is valid only when
-       station is in Infrastructure mode.
-
-       Note: This command is available only when STA is connected.
-
-adhocstop
-       This command is used to stop beacon transmission from the station and
-       go into idle state in ad-hoc mode.
-
-       Note: This command is available only when STA is connected.
-
-radioon
-       This command is used to turn on the RF antenna.
-
-radiooff
-       This command is sued to turn off the RF antenna.
-
-scanmode
-       This command is used to set the station to scan for either IBSS
-       networks or BSS networks or both BSS and IBSS networks. This
-       command can be used with sub commands,
-
-       where the value for
-                       bss     -- Scan All the BSS networks.
-                       ibss    -- Scan All the IBSS networks.
-                       any     -- Scan both BSS and IBSS networks.
-
-
-
-setwpaie
-       This command is used by WPA supplicant to send the WPA-IE to the driver.
-
-wlanidle-off
-       This command is used to get into idle state.
-
-       Note: This command is available only when STA is connected.
-
-wlanidle-on
-       This command is used to get off the idle state.
-
-       Note: This command is available only when STA is connected.
-
-
-getlog
-       This command is used to get the 802.11 statistics available in the
-               station.
-
-       Note: This command is available only when STA is connected.
-
-getadhocstatus
-       This command is used to get the ad-hoc Network Status.
-
-       The various status codes are:
-               AdhocStarted
-               AdhocJoined
-               AdhocIdle
-               InfraMode
-               AutoUnknownMode
-
-       Note: This command is available only when STA is connected.
-
-adhocgrate
-       This command is used to enable(1) g_rate, Disable(0) g_rate
-       and request(2) the status which g_rate is disabled/enabled,
-       for Ad-hoc creator.
-
-       where value is:-
-               0       -- Disabled
-               1       -- Enabled
-               2       -- Get
-
 ledgpio
        This command is used to set/get LEDs.
 
@@ -400,253 +131,6 @@ ledgpio
        Note: LED0 is invalid
        Note: Maximum Number of LEDs are 16.
 
-inactivityto
-       This command is used by the host to set/get the inactivity timeout value,
-       which specifies when WLAN device is put to sleep.
-
-       Usage:
-               iwpriv ethX inactivityto [<timeout>]
-
-       where the parameter are:
-               timeout: timeout value in milliseconds.
-
-       Example:
-               iwpriv eth1 inactivityto
-                       "get the timeout value"
-
-               iwpriv eth1 inactivityto X
-                       "set timeout value to X ms"
-
-
-sleeppd
-       This command is used to configure the sleep period of the WLAN device.
-
-       Usage:
-               iwpriv ethX sleeppd [<sleep period>]
-
-       where the parameter are:
-               Period: sleep period in milliseconds. Range 10~60.
-
-       Example:
-               iwpriv eth1 sleeppd 10
-                       "set period as 10 ms"
-               iwpriv eth1 sleeppd
-                       "get the sleep period configuration"
-
-enable11d
-       This command is used to control 11d
-       where value is:-
-               1       -- Enabled
-               0       -- Disabled
-               2       -- Get
-
-
-
-
-tpccfg
-       Enables or disables automatic transmit power control.
-
-       The first parameter turns this feature on (1) or off (0).  When turning
-       on, the user must also supply four more parameters in the following
-       order:
-               -UseSNR (Use SNR (in addition to PER) for TPC algorithm),
-               -P0 (P0 power level for TPC),
-               -P1 (P1 power level for TPC),
-               -P2 (P2 power level for TPC).
-
-       Usage:
-               iwpriv ethX tpccfg: Get current configuration
-               iwpriv ethX tpccfg 0: disable auto TPC
-               iwpriv ethX tpccfg 0x01 0x00 0x05 0x0a 0x0d: enable auto TPC; do not use SNR;
-                                                            P0=0x05; P1=0x0a; P2=0x0d;
-               iwpriv ethX tpccfg 0x01 0x01 0x05 0x0a 0x0d: enable auto TPC; use SNR;
-                                                            P0=0x05; P1=0x0a; P2=0x0d.
-
-powercfg
-       Enables or disables power adaptation.
-
-       The first parameter turns this feature on (1) or off (0).  When turning
-       on, the user must also supply three more parameters in the following
-       order:
-               -P0 (P0 power level for Power Adaptation),
-               -P1 (P1 power level for Power Adaptation),
-               -P2 (P2 power level for Power Adaptation).
-
-       Usage:
-               iwpriv ethX powercfg: Get current configuration
-               iwpriv ethX powercfg 0: disable power adaptation
-               iwpriv ethX powercfg 1 0x0d 0x0f 0x12: enable power adaptation;
-                                                      P0=0x0d; P1=0x0f; P2=0x12.
-
-getafc
-       This command returns automatic frequency control parameters.  It returns
-       three integers:
-               -P0: automatic is on (1), or off (0),
-               -P1: current timing offset in PPM (part per million), and
-               -P2: current frequency offset in PPM.
-
-setafc
-       Set automatic frequency control options.
-
-       The first parameter turns automatic on (1) or off (0).
-       The user must supply two more parameters in either case, in the following
-  order:
-
-  When auto is on:
-
-               -P0 (automatic adjustment frequency threshold in PPM),
-               -P1 (automatic adjustment period in beacon period),
-
-  When auto is off:
-
-               -P0 (manual adjustment timing offset in PPM), and
-               -P1 (manual adjustment frequency offset in PPM).
-
-       Usage:
-               iwpriv ethX setafc 0 10 10: manual adjustment, both timing and frequcncy
-    offset are 10 PPM.
-
-               iwpriv ethX setafc 1 10 10 enable afc, automatic adjustment,
-    frequency threshold 10 PPM, for every 10 beacon periods.
-
-
-
-scanprobes
-       This command sets number of probe requests per channel.
-
-       Usage:
-               iwpriv ethX scanprobes 3 (set scan probes to 3)
-               iwpriv ethX scanprobes   (get scan probes)
-
-lolisteninter
-       This command sets the value of listen interval.
-
-       Usage:
-       iwpriv ethX lolisteninter 234 (set the lolisteninter to 234)
-       iwpriv ethX lolisteninter     (get the lolisteninter value)
-
-rateadapt
-       This command sets the data rates bitmap.
-       Where <n>
-               0: Disable auto rate adapt
-               1: Enable auto rate adapt
-
-             <m>
-                data rate bitmap
-                       Bit     Data rate
-                       0       1 Mbps
-                       1       2 Mbps
-                       2       5.5 Mbps
-                       3       11 Mbps
-                       4       Reserved
-                       5       6 Mbps
-                       6       9 Mbps
-                       7       12 Mbps
-                       8       18 Mbps
-                       9       24 Mbps
-                       10      36 Mbps
-                       11      48 Mbps
-                       12      54 Mbps
-                       12-15   Reserved
-
-       Usage:
-       iwpriv ethX rateadapt
-                       read the currect data rate setting
-       iwpriv ethX rateadapt 1 0x07
-                       enable auto data rate adapt and
-                       data rates are 1Mbps, 2Mbsp and 5.5Mbps
-
-
-txcontrol
-       This command is used to set the Tx rate, ack policy, and retry limit on a per packet basis.
-
-       Where value <n> is:
-           if bit[4] == 1:
-               bit[3:0]        -- 0   1   2   3   4   5   6   7   8   9   10   11   12   13-16
-               Data Rate(Mbps) -- 1   2   5.5 11  Rsv 6   9   12  18  24  36   48   54   Rsv
-
-           bit[12:8]
-               if bit[12] == 1, bit[11:8] specifies the Tx retry limit.
-
-           bit[14:13] specifies per packet ack policy:
-               bit[14:13]
-                    1  0       use immediate ack policy for this packet
-                    1  1       use no ack policy for this packet
-                    0  x       use the per-packet ack policy setting
-
-       Usage:
-       iwpriv ethX txcontrol 0x7513
-                       Use no-ack policy, 5 retires for Tx, 11Mbps rate
-
-
-
-psnullinterval
-       This command is used to set/request NULL package interval for Power Save
-       under infrastructure mode.
-
-       where value is:-
-               -1      -- Disabled
-               n>0     -- Set interval as n (seconds)
-
-prescan
-       This command is used to enable (1)/disable(0) auto prescan before assoicate to the ap
-
-       where value is:-
-               0       -- Disabled
-               1       -- Enabled
-               2       -- Get
-
-getrxinfo
-       This command gets non average value of Signal to Noise Ratio of Data and rate index.
-
-       The following table shows RateIndex and Rate
-
-                    RateIndex  Data rate
-                       0       1 Mbps
-                       1       2 Mbps
-                       2       5.5 Mbps
-                       3       11 Mbps
-                       4       Reserved
-                       5       6 Mbps
-                       6       9 Mbps
-                       7       12 Mbps
-                       8       18 Mbps
-                       9       24 Mbps
-                       10      36 Mbps
-                       11      48 Mbps
-                       12      54 Mbps
-                       13-15   Reserved
-
-gettxrate
-       This command gets current Tx rate index of the first packet associated with Rate Adaptation.
-
-       The following table shows RateIndex and Rate
-
-                    RateIndex  Data rate
-                       0       1 Mbps
-                       1       2 Mbps
-                       2       5.5 Mbps
-                       3       11 Mbps
-                       4       Reserved
-                       5       6 Mbps
-                       6       9 Mbps
-                       7       12 Mbps
-                       8       18 Mbps
-                       9       24 Mbps
-                       10      36 Mbps
-                       11      48 Mbps
-                       12      54 Mbps
-                       13-15   Reserved
-
-bcninterval
-       This command is used to sets beacon interval in adhoc mode when an argument is given, and gets current adhoc
-       beacon interval when no argument is given. The valid beacon interval is between 20 - 1000,
-       default beacon interval is 100.
-
-       Usage:
-               iwpriv ethX bcninterval 100  (set adhoc beacon interval to 100)
-               iwpriv ethX bcninterval      (get adhoc beacon interval)
-
 fwt_add
        This command is used to insert an entry into the FWT table. The list of
        parameters must follow the following structure:
index b55c7f57aca8d34a4fc7c333e0d2ddf522f9752d..c260bd1b3d46667df8cd32f2beb3fd2a06a59eb0 100644 (file)
@@ -23,13 +23,13 @@ static int assoc_helper_essid(wlan_private *priv,
        ENTER();
 
        lbs_pr_debug(1, "New SSID requested: %s\n", assoc_req->ssid.ssid);
-       if (assoc_req->mode == wlan802_11infrastructure) {
+       if (assoc_req->mode == IW_MODE_INFRA) {
                if (adapter->prescan) {
                        libertas_send_specific_SSID_scan(priv, &assoc_req->ssid, 1);
                }
 
                i = libertas_find_SSID_in_list(adapter, &assoc_req->ssid,
-                               NULL, wlan802_11infrastructure);
+                               NULL, IW_MODE_INFRA);
                if (i >= 0) {
                        lbs_pr_debug(1,
                               "SSID found in scan list ... associating...\n");
@@ -44,7 +44,7 @@ static int assoc_helper_essid(wlan_private *priv,
                        lbs_pr_debug(1, "SSID '%s' not found; cannot associate\n",
                                assoc_req->ssid.ssid);
                }
-       } else if (assoc_req->mode == wlan802_11ibss) {
+       } else if (assoc_req->mode == IW_MODE_ADHOC) {
                /* Scan for the network, do not save previous results.  Stale
                 *   scan data will cause us to join a non-existant adhoc network
                 */
@@ -52,7 +52,7 @@ static int assoc_helper_essid(wlan_private *priv,
 
                /* Search for the requested SSID in the scan table */
                i = libertas_find_SSID_in_list(adapter, &assoc_req->ssid, NULL,
-                               wlan802_11ibss);
+                               IW_MODE_ADHOC);
                if (i >= 0) {
                        lbs_pr_debug(1, "SSID found at %d in List, so join\n", ret);
                        libertas_join_adhoc_network(priv, &adapter->scantable[i]);
@@ -90,10 +90,10 @@ static int assoc_helper_bssid(wlan_private *priv,
                goto out;
        }
 
-       if (assoc_req->mode == wlan802_11infrastructure) {
+       if (assoc_req->mode == IW_MODE_INFRA) {
                ret = wlan_associate(priv, &adapter->scantable[i]);
                lbs_pr_debug(1, "ASSOC: return from wlan_associate(bssd) was %d\n", ret);
-       } else if (assoc_req->mode == wlan802_11ibss) {
+       } else if (assoc_req->mode == IW_MODE_ADHOC) {
                libertas_join_adhoc_network(priv, &adapter->scantable[i]);
        }
        memcpy(&assoc_req->ssid, &adapter->scantable[i].ssid,
@@ -142,23 +142,23 @@ static int assoc_helper_mode(wlan_private *priv,
 
        ENTER();
 
-       if (assoc_req->mode == adapter->inframode) {
+       if (assoc_req->mode == adapter->mode) {
                LEAVE();
                return 0;
        }
 
-       if (assoc_req->mode == wlan802_11infrastructure) {
+       if (assoc_req->mode == IW_MODE_INFRA) {
                if (adapter->psstate != PS_STATE_FULL_POWER)
                        libertas_ps_wakeup(priv, cmd_option_waitforrsp);
                adapter->psmode = wlan802_11powermodecam;
        }
 
-       adapter->inframode = assoc_req->mode;
+       adapter->mode = assoc_req->mode;
        ret = libertas_prepare_and_send_command(priv,
                                    cmd_802_11_snmp_mib,
                                    0, cmd_option_waitforrsp,
                                    OID_802_11_INFRASTRUCTURE_MODE,
-                                   (void *) assoc_req->mode);
+                                   (void *) (size_t) assoc_req->mode);
 
        LEAVE();
        return ret;
@@ -196,7 +196,7 @@ static int assoc_helper_wep_keys(wlan_private *priv,
                goto out;
 
        /* enable/disable the MAC's WEP packet filter */
-       if (assoc_req->secinfo.WEPstatus == wlan802_11WEPenabled)
+       if (assoc_req->secinfo.wep_enabled)
                adapter->currentpacketfilter |= cmd_act_mac_wep_enable;
        else
                adapter->currentpacketfilter &= ~cmd_act_mac_wep_enable;
@@ -300,8 +300,7 @@ static int should_deauth_infrastructure(wlan_adapter *adapter,
        }
 
        if (test_bit(ASSOC_FLAG_SECINFO, &assoc_req->flags)) {
-               if (adapter->secinfo.authmode !=
-                   assoc_req->secinfo.authmode) {
+               if (adapter->secinfo.auth_mode != assoc_req->secinfo.auth_mode) {
                        lbs_pr_debug(1, "Deauthenticating due to updated security "
                                "info in configuration request.\n");
                        return 1;
@@ -316,7 +315,7 @@ static int should_deauth_infrastructure(wlan_adapter *adapter,
 
        /* FIXME: deal with 'auto' mode somehow */
        if (test_bit(ASSOC_FLAG_MODE, &assoc_req->flags)) {
-               if (assoc_req->mode != wlan802_11infrastructure)
+               if (assoc_req->mode != IW_MODE_INFRA)
                        return 1;
        }
 
@@ -333,12 +332,12 @@ static int should_stop_adhoc(wlan_adapter *adapter,
        if (adapter->curbssparams.ssid.ssidlength != assoc_req->ssid.ssidlength)
                return 1;
        if (memcmp(adapter->curbssparams.ssid.ssid, assoc_req->ssid.ssid,
-                       sizeof(struct WLAN_802_11_SSID)))
+                       adapter->curbssparams.ssid.ssidlength))
                return 1;
 
        /* FIXME: deal with 'auto' mode somehow */
        if (test_bit(ASSOC_FLAG_MODE, &assoc_req->flags)) {
-               if (assoc_req->mode != wlan802_11ibss)
+               if (assoc_req->mode != IW_MODE_ADHOC)
                        return 1;
        }
 
@@ -382,7 +381,7 @@ void wlan_association_worker(struct work_struct *work)
        }
 
        if (find_any_ssid) {
-               enum WLAN_802_11_NETWORK_INFRASTRUCTURE new_mode;
+               u8 new_mode;
 
                ret = libertas_find_best_network_SSID(priv, &assoc_req->ssid,
                                assoc_req->mode, &new_mode);
@@ -393,7 +392,7 @@ void wlan_association_worker(struct work_struct *work)
                }
 
                /* Ensure we switch to the mode of the AP */
-               if (assoc_req->mode == wlan802_11autounknown) {
+               if (assoc_req->mode == IW_MODE_AUTO) {
                        set_bit(ASSOC_FLAG_MODE, &assoc_req->flags);
                        assoc_req->mode = new_mode;
                }
@@ -403,7 +402,7 @@ void wlan_association_worker(struct work_struct *work)
         * Check if the attributes being changing require deauthentication
         * from the currently associated infrastructure access point.
         */
-       if (adapter->inframode == wlan802_11infrastructure) {
+       if (adapter->mode == IW_MODE_INFRA) {
                if (should_deauth_infrastructure(adapter, assoc_req)) {
                        ret = libertas_send_deauthentication(priv);
                        if (ret) {
@@ -412,7 +411,7 @@ void wlan_association_worker(struct work_struct *work)
                                        ret);
                        }
                }
-       } else if (adapter->inframode == wlan802_11ibss) {
+       } else if (adapter->mode == IW_MODE_ADHOC) {
                if (should_stop_adhoc(adapter, assoc_req)) {
                        ret = libertas_stop_adhoc_network(priv);
                        if (ret) {
@@ -543,7 +542,7 @@ struct assoc_request * wlan_get_association_request(wlan_adapter *adapter)
                assoc_req->channel = adapter->curbssparams.channel;
 
        if (!test_bit(ASSOC_FLAG_MODE, &assoc_req->flags))
-               assoc_req->mode = adapter->inframode;
+               assoc_req->mode = adapter->mode;
 
        if (!test_bit(ASSOC_FLAG_BSSID, &assoc_req->flags)) {
                memcpy(&assoc_req->bssid, adapter->curbssparams.bssid,
index bfdac58b5c06369b41d92db2219396e519dc75bb..de9cb46a70fffaa726879cc44affb5a3144a6575 100644 (file)
@@ -381,15 +381,16 @@ static int wlan_cmd_802_11_snmp_mib(wlan_private * priv,
        switch (cmd_oid) {
        case OID_802_11_INFRASTRUCTURE_MODE:
        {
-               enum WLAN_802_11_NETWORK_INFRASTRUCTURE mode =
-                       (enum WLAN_802_11_NETWORK_INFRASTRUCTURE) pdata_buf;
+               u8 mode = (u8) (size_t) pdata_buf;
                pSNMPMIB->querytype = cpu_to_le16(cmd_act_set);
                pSNMPMIB->oid = cpu_to_le16((u16) desired_bsstype_i);
                pSNMPMIB->bufsize = sizeof(u8);
-               if (mode == wlan802_11infrastructure)
-                       ucTemp = SNMP_MIB_VALUE_INFRA;
-               else
+               if (mode == IW_MODE_ADHOC) {
                        ucTemp = SNMP_MIB_VALUE_ADHOC;
+               } else {
+                       /* Infra and Auto modes */
+                       ucTemp = SNMP_MIB_VALUE_INFRA;
+               }
 
                memmove(pSNMPMIB->value, &ucTemp, sizeof(u8));
 
@@ -947,8 +948,8 @@ void libertas_queue_cmd(wlan_adapter * adapter, struct cmd_ctrl_node *cmdnode, u
 
        spin_unlock_irqrestore(&adapter->driver_lock, flags);
 
-       lbs_pr_debug(1, "QUEUE_CMD: Inserted node=0x%x, cmd=0x%x in cmdpendingq\n",
-              (u32) cmdnode,
+       lbs_pr_debug(1, "QUEUE_CMD: Inserted node=%p, cmd=0x%x in cmdpendingq\n",
+              cmdnode,
               ((struct cmd_ds_gen*)cmdnode->bufvirtualaddr)->command);
 
 done:
@@ -976,8 +977,8 @@ static int DownloadcommandToStation(wlan_private * priv,
        ENTER();
 
        if (!adapter || !cmdnode) {
-               lbs_pr_debug(1, "DNLD_CMD: adapter = %#x, cmdnode = %#x\n",
-                      (int)adapter, (int)cmdnode);
+               lbs_pr_debug(1, "DNLD_CMD: adapter = %p, cmdnode = %p\n",
+                      adapter, cmdnode);
                if (cmdnode) {
                        spin_lock_irqsave(&adapter->driver_lock, flags);
                        __libertas_cleanup_and_insert_cmd(priv, cmdnode);
@@ -1174,8 +1175,8 @@ int libertas_prepare_and_send_command(wlan_private * priv,
 
        cmdptr = (struct cmd_ds_command *)cmdnode->bufvirtualaddr;
 
-       lbs_pr_debug(1, "PREP_CMD: Val of cmd ptr =0x%x, command=0x%X\n",
-              (u32) cmdptr, cmd_no);
+       lbs_pr_debug(1, "PREP_CMD: Val of cmd ptr=%p, command=0x%X\n",
+              cmdptr, cmd_no);
 
        if (!cmdptr) {
                lbs_pr_debug(1, "PREP_CMD: bufvirtualaddr of cmdnode is NULL\n");
index cdb012c7e9cfcf1c2190b52d2a76742f1814b9c4..c86454034b5839c64dd9a40f92d07c8c928b6aac 100644 (file)
@@ -72,8 +72,6 @@ void libertas_mac_event_disconnected(wlan_private * priv)
        adapter->secinfo.WPAenabled = 0;
        adapter->secinfo.WPA2enabled = 0;
        adapter->wpa_ie_len = 0;
-       adapter->secinfo.auth1xalg = WLAN_1X_AUTH_ALG_NONE;
-       adapter->secinfo.Encryptionmode = CIPHER_NONE;
 
        adapter->connect_status = libertas_disconnected;
 
@@ -811,7 +809,7 @@ int libertas_process_rx_command(wlan_private * priv)
                if (result) {
                        lbs_pr_debug(1, "CMD_RESP: PS command failed- %#x \n",
                               resp->result);
-                       if (adapter->inframode == wlan802_11ibss) {
+                       if (adapter->mode == IW_MODE_ADHOC) {
                                /*
                                 * We should not re-try enter-ps command in
                                 * ad-hoc mode. It takes place in
index 51dfd202f5588b79e71f025c54c859c2d5ad7c45..7d7bc5e86a5663610e8d31fc08c7f9020d9aac63 100644 (file)
@@ -7,6 +7,7 @@
 #include "dev.h"
 #include "decl.h"
 #include "host.h"
+#include "debugfs.h"
 
 static struct dentry *libertas_dir = NULL;
 static char *szStates[] = {
@@ -276,7 +277,7 @@ static void libertas_parse_ssid(char *buf, size_t count,
        if (!end)
                end = buf + count - 1;
 
-       size = min(IW_ESSID_MAX_SIZE, end - hold);
+       size = min((size_t)IW_ESSID_MAX_SIZE, (size_t) (end - hold));
        strncpy(scan_cfg->specificSSID, hold, size);
 
        return;
@@ -1648,7 +1649,7 @@ struct libertas_debugfs_files {
        struct file_operations fops;
 };
 
-struct libertas_debugfs_files debugfs_files[] = {
+static struct libertas_debugfs_files debugfs_files[] = {
        { "info", 0444, FOPS(libertas_dev_info, write_file_dummy), },
        { "getscantable", 0444, FOPS(libertas_getscantable,
                                        write_file_dummy), },
@@ -1658,7 +1659,7 @@ struct libertas_debugfs_files debugfs_files[] = {
        { "setuserscan", 0600, FOPS(NULL, libertas_setuserscan), },
 };
 
-struct libertas_debugfs_files debugfs_events_files[] = {
+static struct libertas_debugfs_files debugfs_events_files[] = {
        {"low_rssi", 0644, FOPS(libertas_lowrssi_read,
                                libertas_lowrssi_write), },
        {"low_snr", 0644, FOPS(libertas_lowsnr_read,
@@ -1673,7 +1674,7 @@ struct libertas_debugfs_files debugfs_events_files[] = {
                                libertas_highsnr_write), },
 };
 
-struct libertas_debugfs_files debugfs_regs_files[] = {
+static struct libertas_debugfs_files debugfs_regs_files[] = {
        {"rdmac", 0644, FOPS(libertas_rdmac_read, libertas_rdmac_write), },
        {"wrmac", 0600, FOPS(NULL, libertas_wrmac_write), },
        {"rdbbp", 0644, FOPS(libertas_rdbbp_read, libertas_rdbbp_write), },
@@ -1778,7 +1779,7 @@ void libertas_debugfs_remove_one(wlan_private *priv)
 struct debug_data {
        char name[32];
        u32 size;
-       u32 addr;
+       size_t addr;
 };
 
 /* To debug any member of wlan_adapter, simply add one line here.
@@ -1825,6 +1826,8 @@ static ssize_t wlan_debugfs_read(struct file *file, char __user *userbuf,
                        val = *((u16 *) d[i].addr);
                else if (d[i].size == 4)
                        val = *((u32 *) d[i].addr);
+               else if (d[i].size == 8)
+                       val = *((u64 *) d[i].addr);
 
                pos += sprintf(p + pos, "%s=%d\n", d[i].name, val);
        }
@@ -1844,7 +1847,7 @@ static ssize_t wlan_debugfs_read(struct file *file, char __user *userbuf,
  *  @param data    data to write
  *  @return       number of data
  */
-static int wlan_debugfs_write(struct file *f, const char __user *buf,
+static ssize_t wlan_debugfs_write(struct file *f, const char __user *buf,
                            size_t cnt, loff_t *ppos)
 {
        int r, i;
@@ -1886,12 +1889,14 @@ static int wlan_debugfs_write(struct file *f, const char __user *buf,
                                *((u16 *) d[i].addr) = (u16) r;
                        else if (d[i].size == 4)
                                *((u32 *) d[i].addr) = (u32) r;
+                       else if (d[i].size == 8)
+                               *((u64 *) d[i].addr) = (u64) r;
                        break;
                } while (1);
        }
        kfree(pdata);
 
-       return cnt;
+       return (ssize_t)cnt;
 }
 
 static struct file_operations libertas_debug_fops = {
@@ -1916,20 +1921,10 @@ void libertas_debug_init(wlan_private * priv, struct net_device *dev)
                return;
 
        for (i = 0; i < num_of_items; i++)
-               items[i].addr += (u32) priv->adapter;
+               items[i].addr += (size_t) priv->adapter;
 
        priv->debugfs_debug = debugfs_create_file("debug", 0644,
                                                  priv->debugfs_dir, &items[0],
                                                  &libertas_debug_fops);
 }
 
-/**
- *  @brief remove proc file
- *
- *  @param priv           pointer wlan_private
- *  @return       N/A
- */
-void libertas_debug_remove(wlan_private * priv)
-{
-       debugfs_remove(priv->debugfs_debug);
-}
index fb1478c1b87d3ae99c718ae5bb72c300228e2280..80dd9ea19c8e4b7ea2faa8c4cbf5874acc77e0a6 100644 (file)
@@ -9,6 +9,11 @@
 
 extern unsigned int libertas_debug;
 
+#ifdef CONFIG_LIBERTAS_DEBUG
+#define DEBUG
+#define PROC_DEBUG
+#endif
+
 #define DRV_NAME               "usb8xxx"
 
 #define lbs_pr_info(format, args...) \
@@ -223,31 +228,6 @@ enum SNRNF_DATA {
        MAX_TYPE_AVG
 };
 
-/** WLAN_802_11_AUTH_ALG*/
-enum WLAN_802_11_AUTH_ALG {
-       AUTH_ALG_OPEN_SYSTEM = 1,
-       AUTH_ALG_SHARED_KEY = 2,
-       AUTH_ALG_NETWORK_EAP = 8,
-};
-
-/** WLAN_802_1X_AUTH_ALG */
-enum WLAN_802_1X_AUTH_ALG {
-       WLAN_1X_AUTH_ALG_NONE = 1,
-       WLAN_1X_AUTH_ALG_LEAP = 2,
-       WLAN_1X_AUTH_ALG_TLS = 4,
-       WLAN_1X_AUTH_ALG_TTLS = 8,
-       WLAN_1X_AUTH_ALG_MD5 = 16,
-};
-
-/** WLAN_802_11_ENCRYPTION_MODE */
-enum WLAN_802_11_ENCRYPTION_MODE {
-       CIPHER_NONE,
-       CIPHER_WEP40,
-       CIPHER_TKIP,
-       CIPHER_CCMP,
-       CIPHER_WEP104,
-};
-
 /** WLAN_802_11_POWER_MODE */
 enum WLAN_802_11_POWER_MODE {
        wlan802_11powermodecam,
@@ -292,28 +272,6 @@ enum mv_ms_type {
        MVMS_EVENT
 };
 
-/** WLAN_802_11_NETWORK_INFRASTRUCTURE */
-enum WLAN_802_11_NETWORK_INFRASTRUCTURE {
-       wlan802_11ibss,
-       wlan802_11infrastructure,
-       wlan802_11autounknown,
-       /*defined as upper bound */
-       wlan802_11infrastructuremax
-};
-
-/** WLAN_802_11_AUTHENTICATION_MODE */
-enum WLAN_802_11_AUTHENTICATION_MODE {
-       wlan802_11authmodeopen = 0x00,
-       wlan802_11authmodeshared = 0x01,
-       wlan802_11authmodenetworkEAP = 0x80,
-};
-
-/** WLAN_802_11_WEP_STATUS */
-enum WLAN_802_11_WEP_STATUS {
-       wlan802_11WEPenabled,
-       wlan802_11WEPdisabled,
-};
-
 /** SNMP_MIB_INDEX_e */
 enum SNMP_MIB_INDEX_e {
        desired_bsstype_i = 0,
index b1f876f9693bf93fc24f222b59f97bdd06677be1..e8b9020f9bd69676654177a54944cbd4e1fb5751 100644 (file)
@@ -10,6 +10,7 @@
 #include <linux/wireless.h>
 #include <linux/ethtool.h>
 #include <linux/debugfs.h>
+#include <net/ieee80211.h>
 
 #include "defs.h"
 #include "scan.h"
@@ -56,10 +57,8 @@ struct region_channel {
 struct wlan_802_11_security {
        u8 WPAenabled;
        u8 WPA2enabled;
-       enum WLAN_802_11_WEP_STATUS WEPstatus;
-       enum WLAN_802_11_AUTHENTICATION_MODE authmode;
-       enum WLAN_802_1X_AUTH_ALG auth1xalg;
-       enum WLAN_802_11_ENCRYPTION_MODE Encryptionmode;
+       u8 wep_enabled;
+       u8 auth_mode;
 };
 
 /** Current Basic Service Set State Structure */
@@ -184,7 +183,7 @@ struct assoc_request {
 
        struct WLAN_802_11_SSID ssid;
        u8 channel;
-       enum WLAN_802_11_NETWORK_INFRASTRUCTURE mode;
+       u8 mode;
        u8 bssid[ETH_ALEN];
 
        /** WEP keys */
@@ -198,7 +197,6 @@ struct assoc_request {
        struct wlan_802_11_security secinfo;
 
        /** WPA Information Elements*/
-#define MAX_WPA_IE_LEN 64
        u8 wpa_ie[MAX_WPA_IE_LEN];
        u8 wpa_ie_len;
 };
@@ -254,7 +252,8 @@ struct _wlan_adapter {
        /** current ssid/bssid related parameters*/
        struct current_bss_params curbssparams;
 
-       enum WLAN_802_11_NETWORK_INFRASTRUCTURE inframode;
+       /* IW_MODE_* */
+       u8 mode;
 
        struct bss_descriptor *pattemptedbssdesc;
 
@@ -339,7 +338,6 @@ struct _wlan_adapter {
        struct WLAN_802_11_KEY wpa_unicast_key;
 
        /** WPA Information Elements*/
-#define MAX_WPA_IE_LEN 64
        u8 wpa_ie[MAX_WPA_IE_LEN];
        u8 wpa_ie_len;
 
index b194a457079162a45da00ac3bfbbe518bcc3dc90..441123c85e62ce0a3d68ec0f0db26414966683a3 100644 (file)
@@ -194,16 +194,13 @@ static void wlan_init_adapter(wlan_private * priv)
        adapter->scanmode = cmd_bss_type_any;
 
        /* 802.11 specific */
-       adapter->secinfo.WEPstatus = wlan802_11WEPdisabled;
+       adapter->secinfo.wep_enabled = 0;
        for (i = 0; i < sizeof(adapter->wep_keys) / sizeof(adapter->wep_keys[0]);
             i++)
                memset(&adapter->wep_keys[i], 0, sizeof(struct WLAN_802_11_KEY));
        adapter->wep_tx_keyidx = 0;
-       adapter->secinfo.WEPstatus = wlan802_11WEPdisabled;
-       adapter->secinfo.authmode = wlan802_11authmodeopen;
-       adapter->secinfo.auth1xalg = WLAN_1X_AUTH_ALG_NONE;
-       adapter->secinfo.Encryptionmode = CIPHER_NONE;
-       adapter->inframode = wlan802_11infrastructure;
+       adapter->secinfo.auth_mode = IW_AUTH_ALG_OPEN_SYSTEM;
+       adapter->mode = IW_MODE_INFRA;
 
        adapter->assoc_req = NULL;
 
index 695fb6a66ffed2dd03949d8105a6437f70d60c44..ae6f72a6cdf396d5946e5ff1de1863c18a6d0380 100644 (file)
@@ -388,7 +388,7 @@ static int __if_usb_submit_rx_urb(wlan_private * priv,
        usb_fill_bulk_urb(cardp->rx_urb, cardp->udev,
                          usb_rcvbulkpipe(cardp->udev,
                                          cardp->bulk_in_endpointAddr),
-                         skb->tail + IPFIELD_ALIGN_OFFSET,
+                         (void *) (skb->tail + (size_t) IPFIELD_ALIGN_OFFSET),
                          MRVDRV_ETH_RX_PACKET_BUFFER_SIZE, callbackfn,
                          rinfo);
 
@@ -626,6 +626,7 @@ static void if_usb_receive(struct urb *urb)
                            cardp->usb_event_cause);
                if (cardp->usb_event_cause & 0xffff0000) {
                        libertas_send_tx_feedback(priv);
+                       spin_unlock(&priv->adapter->driver_lock);
                        break;
                }
                cardp->usb_event_cause = le32_to_cpu(cardp->usb_event_cause) << 3;
@@ -775,7 +776,6 @@ restart:
                return -1;
        }
 
-#ifdef SUPPORT_BOOT_COMMAND
        cardp->bootcmdresp = 0;
        do {
                int j = 0;
@@ -796,7 +796,6 @@ restart:
                }
                return -1;
        }
-#endif
 
        i = 0;
        priv->adapter->fw_ready = 0;
index 785116720bc6c884b5c15a14e3545fe1739e63a4..170dfe6809f5eb1cd9e4ff552dc6edad0651188d 100644 (file)
@@ -12,7 +12,6 @@
 #define USB8388_VID_2  0x05a3
 #define USB8388_PID_2  0x8388
 
-#ifdef SUPPORT_BOOT_COMMAND
 #define BOOT_CMD_FW_BY_USB     0x01
 #define BOOT_CMD_FW_IN_EEPROM  0x02
 #define BOOT_CMD_UPDATE_BOOT2  0x03
@@ -36,7 +35,6 @@ struct bootcmdrespStr
        u8  u8result;
        u8  au8dumy[2];
 };
-#endif /* SUPPORT_BOOT_COMMAND */
 
 /* read callback private data */
 struct read_cb_info {
index 82b39642423a3ad45d2352e85d97588fc085e985..a8f76c35899240837ba6aadb47f696a14a52d7b2 100644 (file)
 
 #define WAIT_FOR_SCAN_RRESULT_MAX_TIME (10 * HZ)
 
-static int setrxantenna(wlan_private * priv, int mode)
-{
-       int ret = 0;
-       wlan_adapter *adapter = priv->adapter;
-
-       if (mode != RF_ANTENNA_1 && mode != RF_ANTENNA_2
-           && mode != RF_ANTENNA_AUTO) {
-               return -EINVAL;
-       }
-
-       adapter->rxantennamode = mode;
-
-       lbs_pr_debug(1, "SET RX Antenna mode to 0x%04x\n", adapter->rxantennamode);
-
-       ret = libertas_prepare_and_send_command(priv, cmd_802_11_rf_antenna,
-                                   cmd_act_set_rx,
-                                   cmd_option_waitforrsp, 0,
-                                   &adapter->rxantennamode);
-       return ret;
-}
-
-static int settxantenna(wlan_private * priv, int mode)
-{
-       int ret = 0;
-       wlan_adapter *adapter = priv->adapter;
-
-       if ((mode != RF_ANTENNA_1) && (mode != RF_ANTENNA_2)
-           && (mode != RF_ANTENNA_AUTO)) {
-               return -EINVAL;
-       }
-
-       adapter->txantennamode = mode;
-
-       lbs_pr_debug(1, "SET TX Antenna mode to 0x%04x\n", adapter->txantennamode);
-
-       ret = libertas_prepare_and_send_command(priv, cmd_802_11_rf_antenna,
-                                   cmd_act_set_tx,
-                                   cmd_option_waitforrsp, 0,
-                                   &adapter->txantennamode);
-
-       return ret;
-}
-
-static int getrxantenna(wlan_private * priv, char *buf)
-{
-       int ret = 0;
-       wlan_adapter *adapter = priv->adapter;
-
-       // clear it, so we will know if the value
-       // returned below is correct or not.
-       adapter->rxantennamode = 0;
-
-       ret = libertas_prepare_and_send_command(priv, cmd_802_11_rf_antenna,
-                                   cmd_act_get_rx,
-                                   cmd_option_waitforrsp, 0, NULL);
-
-       if (ret) {
-               LEAVE();
-               return ret;
-       }
-
-       lbs_pr_debug(1, "Get Rx Antenna mode:0x%04x\n", adapter->rxantennamode);
-
-       return sprintf(buf, "0x%04x", adapter->rxantennamode) + 1;
-}
-
-static int gettxantenna(wlan_private * priv, char *buf)
-{
-       int ret = 0;
-       wlan_adapter *adapter = priv->adapter;
-
-       // clear it, so we will know if the value
-       // returned below is correct or not.
-       adapter->txantennamode = 0;
-
-       ret = libertas_prepare_and_send_command(priv, cmd_802_11_rf_antenna,
-                                   cmd_act_get_tx,
-                                   cmd_option_waitforrsp, 0, NULL);
-
-       if (ret) {
-               LEAVE();
-               return ret;
-       }
-
-       lbs_pr_debug(1, "Get Tx Antenna mode:0x%04x\n", adapter->txantennamode);
-
-       return sprintf(buf, "0x%04x", adapter->txantennamode) + 1;
-}
-
-static int wlan_set_region(wlan_private * priv, u16 region_code)
-{
-       int i;
-
-       for (i = 0; i < MRVDRV_MAX_REGION_CODE; i++) {
-               // use the region code to search for the index
-               if (region_code == libertas_region_code_to_index[i]) {
-                       priv->adapter->regiontableindex = (u16) i;
-                       priv->adapter->regioncode = region_code;
-                       break;
-               }
-       }
-
-       // if it's unidentified region code
-       if (i >= MRVDRV_MAX_REGION_CODE) {
-               lbs_pr_debug(1, "region Code not identified\n");
-               LEAVE();
-               return -1;
-       }
-
-       if (libertas_set_regiontable(priv, priv->adapter->regioncode, 0)) {
-               LEAVE();
-               return -EINVAL;
-       }
-
-       return 0;
-}
-
-/**
- *  @brief Get/Set Firmware wakeup method
- *
- *  @param priv                A pointer to wlan_private structure
- *  @param wrq         A pointer to user data
- *  @return            0--success, otherwise fail
- */
-static int wlan_txcontrol(wlan_private * priv, struct iwreq *wrq)
-{
-       wlan_adapter *adapter = priv->adapter;
-       int data;
-       ENTER();
-
-       if ((int)wrq->u.data.length == 0) {
-               if (copy_to_user
-                   (wrq->u.data.pointer, &adapter->pkttxctrl, sizeof(u32))) {
-                       lbs_pr_alert("copy_to_user failed!\n");
-                       return -EFAULT;
-               }
-       } else {
-               if ((int)wrq->u.data.length > 1) {
-                       lbs_pr_alert("ioctl too many args!\n");
-                       return -EFAULT;
-               }
-               if (copy_from_user(&data, wrq->u.data.pointer, sizeof(int))) {
-                       lbs_pr_alert("Copy from user failed\n");
-                       return -EFAULT;
-               }
-
-               adapter->pkttxctrl = (u32) data;
-       }
-
-       wrq->u.data.length = 1;
-
-       LEAVE();
-       return 0;
-}
-
-/**
- *  @brief Get/Set NULL Package generation interval
- *
- *  @param priv                A pointer to wlan_private structure
- *  @param wrq         A pointer to user data
- *  @return            0--success, otherwise fail
- */
-static int wlan_null_pkt_interval(wlan_private * priv, struct iwreq *wrq)
-{
-       wlan_adapter *adapter = priv->adapter;
-       int data;
-       ENTER();
-
-       if ((int)wrq->u.data.length == 0) {
-               data = adapter->nullpktinterval;
-
-               if (copy_to_user(wrq->u.data.pointer, &data, sizeof(int))) {
-                       lbs_pr_alert( "copy_to_user failed!\n");
-                       return -EFAULT;
-               }
-       } else {
-               if ((int)wrq->u.data.length > 1) {
-                       lbs_pr_alert( "ioctl too many args!\n");
-                       return -EFAULT;
-               }
-               if (copy_from_user(&data, wrq->u.data.pointer, sizeof(int))) {
-                       lbs_pr_debug(1, "Copy from user failed\n");
-                       return -EFAULT;
-               }
-
-               adapter->nullpktinterval = data;
-       }
-
-       wrq->u.data.length = 1;
-
-       LEAVE();
-       return 0;
-}
-
-static int wlan_get_rxinfo(wlan_private * priv, struct iwreq *wrq)
-{
-       wlan_adapter *adapter = priv->adapter;
-       int data[2];
-       ENTER();
-       data[0] = adapter->SNR[TYPE_RXPD][TYPE_NOAVG];
-       data[1] = adapter->rxpd_rate;
-       if (copy_to_user(wrq->u.data.pointer, data, sizeof(int) * 2)) {
-               lbs_pr_debug(1, "Copy to user failed\n");
-               return -EFAULT;
-       }
-       wrq->u.data.length = 2;
-       LEAVE();
-       return 0;
-}
-
-static int wlan_get_snr(wlan_private * priv, struct iwreq *wrq)
-{
-       int ret = 0;
-       wlan_adapter *adapter = priv->adapter;
-       int data[4];
-
-       ENTER();
-       memset(data, 0, sizeof(data));
-       if (wrq->u.data.length) {
-               if (copy_from_user(data, wrq->u.data.pointer,
-                    min_t(size_t, wrq->u.data.length, 4) * sizeof(int)))
-                       return -EFAULT;
-       }
-       if ((wrq->u.data.length == 0) || (data[0] == 0) || (data[0] == 1)) {
-               if (adapter->connect_status == libertas_connected) {
-                       ret = libertas_prepare_and_send_command(priv,
-                                                   cmd_802_11_rssi,
-                                                   0,
-                                                   cmd_option_waitforrsp,
-                                                   0, NULL);
-
-                       if (ret) {
-                               LEAVE();
-                               return ret;
-                       }
-               }
-       }
-
-       if (wrq->u.data.length == 0) {
-               data[0] = adapter->SNR[TYPE_BEACON][TYPE_NOAVG];
-               data[1] = adapter->SNR[TYPE_BEACON][TYPE_AVG];
-               data[2] = adapter->SNR[TYPE_RXPD][TYPE_NOAVG];
-               data[3] = adapter->SNR[TYPE_RXPD][TYPE_AVG] / AVG_SCALE;
-               if (copy_to_user(wrq->u.data.pointer, data, sizeof(int) * 4))
-                       return -EFAULT;
-               wrq->u.data.length = 4;
-       } else if (data[0] == 0) {
-               data[0] = adapter->SNR[TYPE_BEACON][TYPE_NOAVG];
-               if (copy_to_user(wrq->u.data.pointer, data, sizeof(int)))
-                       return -EFAULT;
-               wrq->u.data.length = 1;
-       } else if (data[0] == 1) {
-               data[0] = adapter->SNR[TYPE_BEACON][TYPE_AVG];
-               if (copy_to_user(wrq->u.data.pointer, data, sizeof(int)))
-                       return -EFAULT;
-               wrq->u.data.length = 1;
-       } else if (data[0] == 2) {
-               data[0] = adapter->SNR[TYPE_RXPD][TYPE_NOAVG];
-               if (copy_to_user(wrq->u.data.pointer, data, sizeof(int)))
-                       return -EFAULT;
-               wrq->u.data.length = 1;
-       } else if (data[0] == 3) {
-               data[0] = adapter->SNR[TYPE_RXPD][TYPE_AVG] / AVG_SCALE;
-               if (copy_to_user(wrq->u.data.pointer, data, sizeof(int)))
-                       return -EFAULT;
-               wrq->u.data.length = 1;
-       } else
-               return -ENOTSUPP;
-
-       LEAVE();
-       return 0;
-}
-
-static int wlan_beacon_interval(wlan_private * priv, struct iwreq *wrq)
-{
-       int data;
-       wlan_adapter *adapter = priv->adapter;
-
-       if (wrq->u.data.length > 0) {
-               if (copy_from_user(&data, wrq->u.data.pointer, sizeof(int)))
-                       return -EFAULT;
-
-               lbs_pr_debug(1, "WLAN SET BEACON INTERVAL: %d\n", data);
-               if ((data > MRVDRV_MAX_BEACON_INTERVAL)
-                   || (data < MRVDRV_MIN_BEACON_INTERVAL))
-                       return -ENOTSUPP;
-               adapter->beaconperiod = data;
-       }
-       data = adapter->beaconperiod;
-       if (copy_to_user(wrq->u.data.pointer, &data, sizeof(int)))
-               return -EFAULT;
-
-       wrq->u.data.length = 1;
-
-       return 0;
-}
-
-static int wlan_get_rssi(wlan_private * priv, struct iwreq *wrq)
-{
-       int ret = 0;
-       wlan_adapter *adapter = priv->adapter;
-       int temp;
-       int data = 0;
-       int *val;
-
-       ENTER();
-       data = SUBCMD_DATA(wrq);
-       if ((data == 0) || (data == 1)) {
-               ret = libertas_prepare_and_send_command(priv,
-                                           cmd_802_11_rssi,
-                                           0, cmd_option_waitforrsp,
-                                           0, NULL);
-               if (ret) {
-                       LEAVE();
-                       return ret;
-               }
-       }
-
-       switch (data) {
-       case 0:
-
-               temp = CAL_RSSI(adapter->SNR[TYPE_BEACON][TYPE_NOAVG],
-                               adapter->NF[TYPE_BEACON][TYPE_NOAVG]);
-               break;
-       case 1:
-               temp = CAL_RSSI(adapter->SNR[TYPE_BEACON][TYPE_AVG],
-                               adapter->NF[TYPE_BEACON][TYPE_AVG]);
-               break;
-       case 2:
-               temp = CAL_RSSI(adapter->SNR[TYPE_RXPD][TYPE_NOAVG],
-                               adapter->NF[TYPE_RXPD][TYPE_NOAVG]);
-               break;
-       case 3:
-               temp = CAL_RSSI(adapter->SNR[TYPE_RXPD][TYPE_AVG] / AVG_SCALE,
-                               adapter->NF[TYPE_RXPD][TYPE_AVG] / AVG_SCALE);
-               break;
-       default:
-               return -ENOTSUPP;
-       }
-       val = (int *)wrq->u.name;
-       *val = temp;
-
-       LEAVE();
-       return 0;
-}
-
-static int wlan_get_nf(wlan_private * priv, struct iwreq *wrq)
-{
-       int ret = 0;
-       wlan_adapter *adapter = priv->adapter;
-       int temp;
-       int data = 0;
-       int *val;
-
-       data = SUBCMD_DATA(wrq);
-       if ((data == 0) || (data == 1)) {
-               ret = libertas_prepare_and_send_command(priv,
-                                           cmd_802_11_rssi,
-                                           0, cmd_option_waitforrsp,
-                                           0, NULL);
-
-               if (ret) {
-                       LEAVE();
-                       return ret;
-               }
-       }
-
-       switch (data) {
-       case 0:
-               temp = adapter->NF[TYPE_BEACON][TYPE_NOAVG];
-               break;
-       case 1:
-               temp = adapter->NF[TYPE_BEACON][TYPE_AVG];
-               break;
-       case 2:
-               temp = adapter->NF[TYPE_RXPD][TYPE_NOAVG];
-               break;
-       case 3:
-               temp = adapter->NF[TYPE_RXPD][TYPE_AVG] / AVG_SCALE;
-               break;
-       default:
-               return -ENOTSUPP;
-       }
-
-       temp = CAL_NF(temp);
-
-       lbs_pr_debug(1, "%s: temp = %d\n", __FUNCTION__, temp);
-       val = (int *)wrq->u.name;
-       *val = temp;
-       return 0;
-}
-
-static int wlan_get_txrate_ioctl(wlan_private * priv, struct ifreq *req)
-{
-       wlan_adapter *adapter = priv->adapter;
-       int *pdata;
-       struct iwreq *wrq = (struct iwreq *)req;
-       int ret = 0;
-       adapter->txrate = 0;
-       lbs_pr_debug(1, "wlan_get_txrate_ioctl\n");
-       ret = libertas_prepare_and_send_command(priv, cmd_802_11_tx_rate_query,
-                                   cmd_act_get, cmd_option_waitforrsp,
-                                   0, NULL);
-       if (ret)
-               return ret;
-
-       pdata = (int *)wrq->u.name;
-       *pdata = (int)adapter->txrate;
-       return 0;
-}
-
-static int wlan_get_adhoc_status_ioctl(wlan_private * priv, struct iwreq *wrq)
-{
-       char status[64];
-       wlan_adapter *adapter = priv->adapter;
-
-       memset(status, 0, sizeof(status));
-
-       switch (adapter->inframode) {
-       case wlan802_11ibss:
-               if (adapter->connect_status == libertas_connected) {
-                       if (adapter->adhoccreate)
-                               memcpy(&status, "AdhocStarted", sizeof(status));
-                       else
-                               memcpy(&status, "AdhocJoined", sizeof(status));
-               } else {
-                       memcpy(&status, "AdhocIdle", sizeof(status));
-               }
-               break;
-       case wlan802_11infrastructure:
-               memcpy(&status, "Inframode", sizeof(status));
-               break;
-       default:
-               memcpy(&status, "AutoUnknownmode", sizeof(status));
-               break;
-       }
-
-       lbs_pr_debug(1, "status = %s\n", status);
-       wrq->u.data.length = strlen(status) + 1;
-
-       if (wrq->u.data.pointer) {
-               if (copy_to_user(wrq->u.data.pointer,
-                                &status, wrq->u.data.length))
-                       return -EFAULT;
-       }
-
-       LEAVE();
-       return 0;
-}
-
-/**
- *  @brief Set/Get WPA IE
- *  @param priv                 A pointer to wlan_private structure
- *  @param req                 A pointer to ifreq structure
- *  @return                    0 --success, otherwise fail
- */
-static int wlan_setwpaie_ioctl(wlan_private * priv, struct ifreq *req)
-{
-       struct iwreq *wrq = (struct iwreq *)req;
-       wlan_adapter *adapter = priv->adapter;
-       int ret = 0;
-
-       ENTER();
-
-       if (wrq->u.data.length) {
-               if (wrq->u.data.length > sizeof(adapter->wpa_ie)) {
-                       lbs_pr_debug(1, "failed to copy WPA IE, too big \n");
-                       return -EFAULT;
-               }
-               if (copy_from_user(adapter->wpa_ie, wrq->u.data.pointer,
-                                  wrq->u.data.length)) {
-                       lbs_pr_debug(1, "failed to copy WPA IE \n");
-                       return -EFAULT;
-               }
-               adapter->wpa_ie_len = wrq->u.data.length;
-               lbs_pr_debug(1, "Set wpa_ie_len=%d IE=%#x\n", adapter->wpa_ie_len,
-                      adapter->wpa_ie[0]);
-               lbs_dbg_hex("wpa_ie", adapter->wpa_ie, adapter->wpa_ie_len);
-               if (adapter->wpa_ie[0] == WPA_IE)
-                       adapter->secinfo.WPAenabled = 1;
-               else if (adapter->wpa_ie[0] == WPA2_IE)
-                       adapter->secinfo.WPA2enabled = 1;
-               else {
-                       adapter->secinfo.WPAenabled = 0;
-                       adapter->secinfo.WPA2enabled = 0;
-               }
-       } else {
-               memset(adapter->wpa_ie, 0, sizeof(adapter->wpa_ie));
-               adapter->wpa_ie_len = wrq->u.data.length;
-               lbs_pr_debug(1, "Reset wpa_ie_len=%d IE=%#x\n",
-                      adapter->wpa_ie_len, adapter->wpa_ie[0]);
-               adapter->secinfo.WPAenabled = 0;
-               adapter->secinfo.WPA2enabled = 0;
-       }
-
-       // enable/disable RSN in firmware if WPA is enabled/disabled
-       // depending on variable adapter->secinfo.WPAenabled is set or not
-       ret = libertas_prepare_and_send_command(priv, cmd_802_11_enable_rsn,
-                                   cmd_act_set, cmd_option_waitforrsp,
-                                   0, NULL);
-
-       LEAVE();
-       return ret;
-}
-
-/**
- *  @brief Set Auto prescan
- *  @param priv                 A pointer to wlan_private structure
- *  @param wrq                 A pointer to iwreq structure
- *  @return                    0 --success, otherwise fail
- */
-static int wlan_subcmd_setprescan_ioctl(wlan_private * priv, struct iwreq *wrq)
-{
-       int data;
-       wlan_adapter *adapter = priv->adapter;
-       int *val;
-
-       data = SUBCMD_DATA(wrq);
-       lbs_pr_debug(1, "WLAN_SUBCMD_SET_PRESCAN %d\n", data);
-       adapter->prescan = data;
-
-       val = (int *)wrq->u.name;
-       *val = data;
-       return 0;
-}
-
-static int wlan_set_multiple_dtim_ioctl(wlan_private * priv, struct ifreq *req)
-{
-       struct iwreq *wrq = (struct iwreq *)req;
-       u32 mdtim;
-       int idata;
-       int ret = -EINVAL;
-
-       ENTER();
-
-       idata = SUBCMD_DATA(wrq);
-       mdtim = (u32) idata;
-       if (((mdtim >= MRVDRV_MIN_MULTIPLE_DTIM)
-            && (mdtim <= MRVDRV_MAX_MULTIPLE_DTIM))
-           || (mdtim == MRVDRV_IGNORE_MULTIPLE_DTIM)) {
-               priv->adapter->multipledtim = mdtim;
-               ret = 0;
-       }
-       if (ret)
-               lbs_pr_debug(1, "Invalid parameter, multipledtim not changed.\n");
-
-       LEAVE();
-       return ret;
-}
-
-/**
- *  @brief Set authentication mode
- *  @param priv                 A pointer to wlan_private structure
- *  @param req                 A pointer to ifreq structure
- *  @return                    0 --success, otherwise fail
- */
-static int wlan_setauthalg_ioctl(wlan_private * priv, struct ifreq *req)
-{
-       int alg;
-       struct iwreq *wrq = (struct iwreq *)req;
-       wlan_adapter *adapter = priv->adapter;
-
-       if (wrq->u.data.flags == 0) {
-               //from iwpriv subcmd
-               alg = SUBCMD_DATA(wrq);
-       } else {
-               //from wpa_supplicant subcmd
-               if (copy_from_user(&alg, wrq->u.data.pointer, sizeof(alg))) {
-                       lbs_pr_debug(1, "Copy from user failed\n");
-                       return -EFAULT;
-               }
-       }
-
-       lbs_pr_debug(1, "auth alg is %#x\n", alg);
-
-       switch (alg) {
-       case AUTH_ALG_SHARED_KEY:
-               adapter->secinfo.authmode = wlan802_11authmodeshared;
-               break;
-       case AUTH_ALG_NETWORK_EAP:
-               adapter->secinfo.authmode =
-                   wlan802_11authmodenetworkEAP;
-               break;
-       case AUTH_ALG_OPEN_SYSTEM:
-       default:
-               adapter->secinfo.authmode = wlan802_11authmodeopen;
-               break;
-       }
-       return 0;
-}
-
-/**
- *  @brief Set 802.1x authentication mode
- *  @param priv                 A pointer to wlan_private structure
- *  @param req                 A pointer to ifreq structure
- *  @return                    0 --success, otherwise fail
- */
-static int wlan_set8021xauthalg_ioctl(wlan_private * priv, struct ifreq *req)
-{
-       int alg;
-       struct iwreq *wrq = (struct iwreq *)req;
-
-       if (wrq->u.data.flags == 0) {
-               //from iwpriv subcmd
-               alg = SUBCMD_DATA(wrq);
-       } else {
-               //from wpa_supplicant subcmd
-               if (copy_from_user(&alg, wrq->u.data.pointer, sizeof(int))) {
-                       lbs_pr_debug(1, "Copy from user failed\n");
-                       return -EFAULT;
-               }
-       }
-       lbs_pr_debug(1, "802.1x auth alg is %#x\n", alg);
-       priv->adapter->secinfo.auth1xalg = alg;
-       return 0;
-}
-
-static int wlan_setencryptionmode_ioctl(wlan_private * priv, struct ifreq *req)
-{
-       int mode;
-       struct iwreq *wrq = (struct iwreq *)req;
-
-       ENTER();
-
-       if (wrq->u.data.flags == 0) {
-               //from iwpriv subcmd
-               mode = SUBCMD_DATA(wrq);
-       } else {
-               //from wpa_supplicant subcmd
-               if (copy_from_user(&mode, wrq->u.data.pointer, sizeof(int))) {
-                       lbs_pr_debug(1, "Copy from user failed\n");
-                       return -EFAULT;
-               }
-       }
-       lbs_pr_debug(1, "encryption mode is %#x\n", mode);
-       priv->adapter->secinfo.Encryptionmode = mode;
-
-       LEAVE();
-       return 0;
-}
-
-static void adjust_mtu(wlan_private * priv)
-{
-       int mtu_increment = 0;
-
-       if (priv->adapter->linkmode == WLAN_LINKMODE_802_11)
-               mtu_increment += sizeof(struct ieee80211_hdr_4addr);
-
-       if (priv->adapter->radiomode == WLAN_RADIOMODE_RADIOTAP)
-               mtu_increment += max(sizeof(struct tx_radiotap_hdr),
-                                    sizeof(struct rx_radiotap_hdr));
-       priv->wlan_dev.netdev->mtu = ETH_FRAME_LEN
-           - sizeof(struct ethhdr)
-           + mtu_increment;
-}
-
-/**
- *  @brief Set Link-Layer Layer mode
- *  @param priv                 A pointer to wlan_private structure
- *  @param req                 A pointer to ifreq structure
- *  @return                    0 --success, otherwise fail
- */
-static int wlan_set_linkmode_ioctl(wlan_private * priv, struct ifreq *req)
-{
-       int mode;
-
-       mode = (int)((struct ifreq *)((u8 *) req + 4))->ifr_data;
-
-       switch (mode) {
-       case WLAN_LINKMODE_802_3:
-               priv->adapter->linkmode = mode;
-               break;
-       case WLAN_LINKMODE_802_11:
-               priv->adapter->linkmode = mode;
-               break;
-       default:
-               lbs_pr_info("usb8388-5: invalid link-layer mode (%#x)\n",
-                      mode);
-               return -EINVAL;
-               break;
-       }
-       lbs_pr_debug(1, "usb8388-5: link-layer mode is %#x\n", mode);
-
-       adjust_mtu(priv);
-
-       return 0;
-}
-
-/**
- *  @brief Set Radio header mode
- *  @param priv                 A pointer to wlan_private structure
- *  @param req                 A pointer to ifreq structure
- *  @return                    0 --success, otherwise fail
- */
-static int wlan_set_radiomode_ioctl(wlan_private * priv, struct ifreq *req)
-{
-       int mode;
-
-       mode = (int)((struct ifreq *)((u8 *) req + 4))->ifr_data;
-
-       switch (mode) {
-       case WLAN_RADIOMODE_NONE:
-               priv->adapter->radiomode = mode;
-               break;
-       case WLAN_RADIOMODE_RADIOTAP:
-               priv->adapter->radiomode = mode;
-               break;
-       default:
-               lbs_pr_debug(1, "usb8388-5: invalid radio header mode (%#x)\n",
-                      mode);
-               return -EINVAL;
-       }
-       lbs_pr_debug(1, "usb8388-5: radio-header mode is %#x\n", mode);
-
-       adjust_mtu(priv);
-       return 0;
-}
-
-/**
- *  @brief Set Debug header mode
- *  @param priv                 A pointer to wlan_private structure
- *  @param req                 A pointer to ifreq structure
- *  @return                    0 --success, otherwise fail
- */
-static int wlan_set_debugmode_ioctl(wlan_private * priv, struct ifreq *req)
-{
-       priv->adapter->debugmode = (int)((struct ifreq *)
-                                        ((u8 *) req + 4))->ifr_data;
-       return 0;
-}
-
-static int wlan_subcmd_getrxantenna_ioctl(wlan_private * priv,
-                                         struct ifreq *req)
-{
-       int len;
-       char buf[8];
-       struct iwreq *wrq = (struct iwreq *)req;
-
-       lbs_pr_debug(1, "WLAN_SUBCMD_GETRXANTENNA\n");
-       len = getrxantenna(priv, buf);
-
-       wrq->u.data.length = len;
-       if (wrq->u.data.pointer) {
-               if (copy_to_user(wrq->u.data.pointer, &buf, len)) {
-                       lbs_pr_debug(1, "CopyToUser failed\n");
-                       return -EFAULT;
-               }
-       }
-
-       return 0;
-}
-
-static int wlan_subcmd_gettxantenna_ioctl(wlan_private * priv,
-                                         struct ifreq *req)
-{
-       int len;
-       char buf[8];
-       struct iwreq *wrq = (struct iwreq *)req;
-
-       lbs_pr_debug(1, "WLAN_SUBCMD_GETTXANTENNA\n");
-       len = gettxantenna(priv, buf);
-
-       wrq->u.data.length = len;
-       if (wrq->u.data.pointer) {
-               if (copy_to_user(wrq->u.data.pointer, &buf, len)) {
-                       lbs_pr_debug(1, "CopyToUser failed\n");
-                       return -EFAULT;
-               }
-       }
-       return 0;
-}
-
-/**
- *  @brief Get the MAC TSF value from the firmware
- *
- *  @param priv         A pointer to wlan_private structure
- *  @param wrq          A pointer to iwreq structure containing buffer
- *                      space to store a TSF value retrieved from the firmware
- *
- *  @return             0 if successful; IOCTL error code otherwise
- */
-static int wlan_get_tsf_ioctl(wlan_private * priv, struct iwreq *wrq)
-{
-       u64 tsfval;
-       int ret;
-
-       ret = libertas_prepare_and_send_command(priv,
-                                   cmd_get_tsf,
-                                   0, cmd_option_waitforrsp, 0, &tsfval);
-
-       lbs_pr_debug(1, "IOCTL: Get TSF = 0x%016llx\n", tsfval);
-
-       if (ret != 0) {
-               lbs_pr_debug(1, "IOCTL: Get TSF; command exec failed\n");
-               ret = -EFAULT;
-       } else {
-               if (copy_to_user(wrq->u.data.pointer,
-                                &tsfval,
-                                min_t(size_t, wrq->u.data.length,
-                                    sizeof(tsfval))) != 0) {
-
-                       lbs_pr_debug(1, "IOCTL: Get TSF; Copy to user failed\n");
-                       ret = -EFAULT;
-               } else {
-                       ret = 0;
-               }
-       }
-       return ret;
-}
-
-/**
- *  @brief Get/Set adapt rate
- *  @param priv                 A pointer to wlan_private structure
- *  @param wrq                 A pointer to iwreq structure
- *  @return                    0 --success, otherwise fail
- */
-static int wlan_adapt_rateset(wlan_private * priv, struct iwreq *wrq)
-{
-       int ret;
-       wlan_adapter *adapter = priv->adapter;
-       int data[2];
-
-       memset(data, 0, sizeof(data));
-       if (!wrq->u.data.length) {
-               lbs_pr_debug(1, "Get ADAPT RATE SET\n");
-               ret = libertas_prepare_and_send_command(priv,
-                                           cmd_802_11_rate_adapt_rateset,
-                                           cmd_act_get,
-                                           cmd_option_waitforrsp, 0, NULL);
-               data[0] = adapter->enablehwauto;
-               data[1] = adapter->ratebitmap;
-               if (copy_to_user(wrq->u.data.pointer, data, sizeof(int) * 2)) {
-                       lbs_pr_debug(1, "Copy to user failed\n");
-                       return -EFAULT;
-               }
-#define GET_TWO_INT    2
-               wrq->u.data.length = GET_TWO_INT;
-       } else {
-               lbs_pr_debug(1, "Set ADAPT RATE SET\n");
-               if (wrq->u.data.length > 2)
-                       return -EINVAL;
-               if (copy_from_user
-                   (data, wrq->u.data.pointer,
-                    sizeof(int) * wrq->u.data.length)) {
-                       lbs_pr_debug(1, "Copy from user failed\n");
-                       return -EFAULT;
-               }
-
-               adapter->enablehwauto = data[0];
-               adapter->ratebitmap = data[1];
-               ret = libertas_prepare_and_send_command(priv,
-                                           cmd_802_11_rate_adapt_rateset,
-                                           cmd_act_set,
-                                           cmd_option_waitforrsp, 0, NULL);
-       }
-       return ret;
-}
-
-/**
- *  @brief Get/Set inactivity timeout
- *  @param priv                 A pointer to wlan_private structure
- *  @param wrq                 A pointer to iwreq structure
- *  @return                    0 --success, otherwise fail
- */
-static int wlan_inactivity_timeout(wlan_private * priv, struct iwreq *wrq)
-{
-       int ret;
-       int data = 0;
-       u16 timeout = 0;
-
-       ENTER();
-       if (wrq->u.data.length > 1)
-               return -ENOTSUPP;
-
-       if (wrq->u.data.length == 0) {
-               /* Get */
-               ret = libertas_prepare_and_send_command(priv,
-                                           cmd_802_11_inactivity_timeout,
-                                           cmd_act_get,
-                                           cmd_option_waitforrsp, 0,
-                                           &timeout);
-               data = timeout;
-               if (copy_to_user(wrq->u.data.pointer, &data, sizeof(int))) {
-                       lbs_pr_debug(1, "Copy to user failed\n");
-                       return -EFAULT;
-               }
-       } else {
-               /* Set */
-               if (copy_from_user(&data, wrq->u.data.pointer, sizeof(int))) {
-                       lbs_pr_debug(1, "Copy from user failed\n");
-                       return -EFAULT;
-               }
-
-               timeout = data;
-               ret = libertas_prepare_and_send_command(priv,
-                                           cmd_802_11_inactivity_timeout,
-                                           cmd_act_set,
-                                           cmd_option_waitforrsp, 0,
-                                           &timeout);
-       }
-
-       wrq->u.data.length = 1;
-
-       LEAVE();
-       return ret;
-}
-
-static int wlan_do_getlog_ioctl(wlan_private * priv, struct iwreq *wrq)
-{
-       int ret;
-       char buf[GETLOG_BUFSIZE - 1];
-       wlan_adapter *adapter = priv->adapter;
-
-       lbs_pr_debug(1, " GET STATS\n");
-
-       ret = libertas_prepare_and_send_command(priv, cmd_802_11_get_log,
-                                   0, cmd_option_waitforrsp, 0, NULL);
-
-       if (ret) {
-               return ret;
-       }
-
-       if (wrq->u.data.pointer) {
-               sprintf(buf, "\n  mcasttxframe %u failed %u retry %u "
-                       "multiretry %u framedup %u "
-                       "rtssuccess %u rtsfailure %u ackfailure %u\n"
-                       "rxfrag %u mcastrxframe %u fcserror %u "
-                       "txframe %u wepundecryptable %u ",
-                       adapter->logmsg.mcasttxframe,
-                       adapter->logmsg.failed,
-                       adapter->logmsg.retry,
-                       adapter->logmsg.multiretry,
-                       adapter->logmsg.framedup,
-                       adapter->logmsg.rtssuccess,
-                       adapter->logmsg.rtsfailure,
-                       adapter->logmsg.ackfailure,
-                       adapter->logmsg.rxfrag,
-                       adapter->logmsg.mcastrxframe,
-                       adapter->logmsg.fcserror,
-                       adapter->logmsg.txframe,
-                       adapter->logmsg.wepundecryptable);
-               wrq->u.data.length = strlen(buf) + 1;
-               if (copy_to_user(wrq->u.data.pointer, buf, wrq->u.data.length)) {
-                       lbs_pr_debug(1, "Copy to user failed\n");
-                       return -EFAULT;
-               }
-       }
-
-       return 0;
-}
-
-static int wlan_scan_type_ioctl(wlan_private * priv, struct iwreq *wrq)
-{
-       u8 buf[12];
-       u8 *option[] = { "active", "passive", "get", };
-       int i, max_options = (sizeof(option) / sizeof(option[0]));
-       int ret = 0;
-       wlan_adapter *adapter = priv->adapter;
-
-       if (priv->adapter->enable11d) {
-               lbs_pr_debug(1, "11D: Cannot set scantype when 11D enabled\n");
-               return -EFAULT;
-       }
-
-       memset(buf, 0, sizeof(buf));
-
-       if (copy_from_user(buf, wrq->u.data.pointer, min_t(size_t, sizeof(buf),
-                                                        wrq->u.data.length)))
-               return -EFAULT;
-
-       lbs_pr_debug(1, "Scan type Option = %s\n", buf);
-
-       buf[sizeof(buf) - 1] = '\0';
-
-       for (i = 0; i < max_options; i++) {
-               if (!strcmp(buf, option[i]))
-                       break;
-       }
-
-       switch (i) {
-       case 0:
-               adapter->scantype = cmd_scan_type_active;
-               break;
-       case 1:
-               adapter->scantype = cmd_scan_type_passive;
-               break;
-       case 2:
-               wrq->u.data.length = strlen(option[adapter->scantype]) + 1;
-
-               if (copy_to_user(wrq->u.data.pointer,
-                                option[adapter->scantype],
-                                wrq->u.data.length)) {
-                       lbs_pr_debug(1, "Copy to user failed\n");
-                       ret = -EFAULT;
-               }
-
-               break;
-       default:
-               lbs_pr_debug(1, "Invalid Scan type Ioctl Option\n");
-               ret = -EINVAL;
-               break;
-       }
-
-       return ret;
-}
-
-static int wlan_scan_mode_ioctl(wlan_private * priv, struct iwreq *wrq)
-{
-       wlan_adapter *adapter = priv->adapter;
-       u8 buf[12];
-       u8 *option[] = { "bss", "ibss", "any", "get" };
-       int i, max_options = (sizeof(option) / sizeof(option[0]));
-       int ret = 0;
-
-       ENTER();
-
-       memset(buf, 0, sizeof(buf));
-
-       if (copy_from_user(buf, wrq->u.data.pointer, min_t(size_t, sizeof(buf),
-                                                        wrq->u.data.length))) {
-               lbs_pr_debug(1, "Copy from user failed\n");
-               return -EFAULT;
-       }
-
-       lbs_pr_debug(1, "Scan mode Option = %s\n", buf);
-
-       buf[sizeof(buf) - 1] = '\0';
+static int wlan_set_region(wlan_private * priv, u16 region_code)
+{
+       int i;
 
-       for (i = 0; i < max_options; i++) {
-               if (!strcmp(buf, option[i]))
+       for (i = 0; i < MRVDRV_MAX_REGION_CODE; i++) {
+               // use the region code to search for the index
+               if (region_code == libertas_region_code_to_index[i]) {
+                       priv->adapter->regiontableindex = (u16) i;
+                       priv->adapter->regioncode = region_code;
                        break;
-       }
-
-       switch (i) {
-
-       case 0:
-               adapter->scanmode = cmd_bss_type_bss;
-               break;
-       case 1:
-               adapter->scanmode = cmd_bss_type_ibss;
-               break;
-       case 2:
-               adapter->scanmode = cmd_bss_type_any;
-               break;
-       case 3:
-
-               wrq->u.data.length = strlen(option[adapter->scanmode - 1]) + 1;
-
-               lbs_pr_debug(1, "Get Scan mode Option = %s\n",
-                      option[adapter->scanmode - 1]);
-
-               lbs_pr_debug(1, "Scan mode length %d\n", wrq->u.data.length);
-
-               if (copy_to_user(wrq->u.data.pointer,
-                                option[adapter->scanmode - 1],
-                                wrq->u.data.length)) {
-                       lbs_pr_debug(1, "Copy to user failed\n");
-                       ret = -EFAULT;
                }
-               lbs_pr_debug(1, "GET Scan type Option after copy = %s\n",
-                      (char *)wrq->u.data.pointer);
-
-               break;
-
-       default:
-               lbs_pr_debug(1, "Invalid Scan mode Ioctl Option\n");
-               ret = -EINVAL;
-               break;
        }
 
-       LEAVE();
-       return ret;
-}
-
-/**
- *  @brief Get/Set Adhoc G Rate
- *
- *  @param priv                A pointer to wlan_private structure
- *  @param wrq         A pointer to user data
- *  @return            0--success, otherwise fail
- */
-static int wlan_do_set_grate_ioctl(wlan_private * priv, struct iwreq *wrq)
-{
-       wlan_adapter *adapter = priv->adapter;
-       int data, data1;
-       int *val;
-
-       ENTER();
+       // if it's unidentified region code
+       if (i >= MRVDRV_MAX_REGION_CODE) {
+               lbs_pr_debug(1, "region Code not identified\n");
+               LEAVE();
+               return -1;
+       }
 
-       data1 = SUBCMD_DATA(wrq);
-       switch (data1) {
-       case 0:
-               adapter->adhoc_grate_enabled = 0;
-               break;
-       case 1:
-               adapter->adhoc_grate_enabled = 1;
-               break;
-       case 2:
-               break;
-       default:
+       if (libertas_set_regiontable(priv, priv->adapter->regioncode, 0)) {
+               LEAVE();
                return -EINVAL;
        }
-       data = adapter->adhoc_grate_enabled;
-       val = (int *)wrq->u.name;
-       *val = data;
-       LEAVE();
+
        return 0;
 }
 
@@ -1761,6 +680,7 @@ static int wlan_fwt_list_neighbor_ioctl(wlan_private * priv, struct ifreq *req)
  */
 static int wlan_fwt_cleanup_ioctl(wlan_private * priv, struct ifreq *req)
 {
+       struct iwreq *wrq = (struct iwreq *)req;
        static struct cmd_ds_fwt_access fwt_access;
        int ret;
 
@@ -1776,7 +696,7 @@ static int wlan_fwt_cleanup_ioctl(wlan_private * priv, struct ifreq *req)
                                    (void *)&fwt_access);
 
        if (ret == 0)
-               req->ifr_data = (char *)(le32_to_cpu(fwt_access.references));
+               wrq->u.param.value = le32_to_cpu(fwt_access.references);
        else
                return -EFAULT;
 
@@ -1792,6 +712,7 @@ static int wlan_fwt_cleanup_ioctl(wlan_private * priv, struct ifreq *req)
  */
 static int wlan_fwt_time_ioctl(wlan_private * priv, struct ifreq *req)
 {
+       struct iwreq *wrq = (struct iwreq *)req;
        static struct cmd_ds_fwt_access fwt_access;
        int ret;
 
@@ -1807,7 +728,7 @@ static int wlan_fwt_time_ioctl(wlan_private * priv, struct ifreq *req)
                                    (void *)&fwt_access);
 
        if (ret == 0)
-               req->ifr_data = (char *)(le32_to_cpu(fwt_access.references));
+               wrq->u.param.value = le32_to_cpu(fwt_access.references);
        else
                return -EFAULT;
 
@@ -1823,6 +744,7 @@ static int wlan_fwt_time_ioctl(wlan_private * priv, struct ifreq *req)
  */
 static int wlan_mesh_get_ttl_ioctl(wlan_private * priv, struct ifreq *req)
 {
+       struct iwreq *wrq = (struct iwreq *)req;
        struct cmd_ds_mesh_access mesh_access;
        int ret;
 
@@ -1835,9 +757,8 @@ static int wlan_mesh_get_ttl_ioctl(wlan_private * priv, struct ifreq *req)
                                    cmd_option_waitforrsp, 0,
                                    (void *)&mesh_access);
 
-       if (ret == 0) {
-               req->ifr_data = (char *)(le32_to_cpu(mesh_access.data[0]));
-       }
+       if (ret == 0)
+               wrq->u.param.value = le32_to_cpu(mesh_access.data[0]);
        else
                return -EFAULT;
 
@@ -1898,36 +819,8 @@ int libertas_do_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
 
        lbs_pr_debug(1, "libertas_do_ioctl: ioctl cmd = 0x%x\n", cmd);
        switch (cmd) {
-       case WLANSCAN_TYPE:
-               lbs_pr_debug(1, "Scan type Ioctl\n");
-               ret = wlan_scan_type_ioctl(priv, wrq);
-               break;
-
        case WLAN_SETNONE_GETNONE:      /* set WPA mode on/off ioctl #20 */
                switch (wrq->u.data.flags) {
-               case WLANDEAUTH:
-                       lbs_pr_debug(1, "Deauth\n");
-                       libertas_send_deauth(priv);
-                       break;
-
-               case WLANADHOCSTOP:
-                       lbs_pr_debug(1, "Adhoc stop\n");
-                       ret = libertas_do_adhocstop_ioctl(priv);
-                       break;
-
-               case WLANRADIOON:
-                       wlan_radio_ioctl(priv, 1);
-                       break;
-
-               case WLANRADIOOFF:
-                       wlan_radio_ioctl(priv, 0);
-                       break;
-               case WLANWLANIDLEON:
-                       libertas_idle_on(priv);
-                       break;
-               case WLANWLANIDLEOFF:
-                       libertas_idle_off(priv);
-                       break;
                case WLAN_SUBCMD_BT_RESET:      /* bt_reset */
                        wlan_bt_reset_ioctl(priv);
                        break;
@@ -1937,162 +830,19 @@ int libertas_do_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
                }               /* End of switch */
                break;
 
-       case WLANSETWPAIE:
-               ret = wlan_setwpaie_ioctl(priv, req);
-               break;
-       case WLAN_SETINT_GETINT:
-               /* The first 4 bytes of req->ifr_data is sub-ioctl number
-                * after 4 bytes sits the payload.
-                */
-               subcmd = (int)req->ifr_data;    //from iwpriv subcmd
-               switch (subcmd) {
-               case WLANNF:
-                       ret = wlan_get_nf(priv, wrq);
-                       break;
-               case WLANRSSI:
-                       ret = wlan_get_rssi(priv, wrq);
-                       break;
-               case WLANENABLE11D:
-                       ret = libertas_cmd_enable_11d(priv, wrq);
-                       break;
-               case WLANADHOCGRATE:
-                       ret = wlan_do_set_grate_ioctl(priv, wrq);
-                       break;
-               case WLAN_SUBCMD_SET_PRESCAN:
-                       ret = wlan_subcmd_setprescan_ioctl(priv, wrq);
-                       break;
-               }
-               break;
-
-       case WLAN_SETONEINT_GETONEINT:
-               switch (wrq->u.data.flags) {
-               case WLAN_BEACON_INTERVAL:
-                       ret = wlan_beacon_interval(priv, wrq);
-                       break;
-
-               case WLAN_LISTENINTRVL:
-                       if (!wrq->u.data.length) {
-                               int data;
-                               lbs_pr_debug(1, "Get locallisteninterval value\n");
-#define GET_ONE_INT    1
-                               data = adapter->locallisteninterval;
-                               if (copy_to_user(wrq->u.data.pointer,
-                                                &data, sizeof(int))) {
-                                       lbs_pr_debug(1, "Copy to user failed\n");
-                                       return -EFAULT;
-                               }
-
-                               wrq->u.data.length = GET_ONE_INT;
-                       } else {
-                               int data;
-                               if (copy_from_user
-                                   (&data, wrq->u.data.pointer, sizeof(int))) {
-                                       lbs_pr_debug(1, "Copy from user failed\n");
-                                       return -EFAULT;
-                               }
-
-                               lbs_pr_debug(1, "Set locallisteninterval = %d\n",
-                                      data);
-#define MAX_U16_VAL    65535
-                               if (data > MAX_U16_VAL) {
-                                       lbs_pr_debug(1, "Exceeds U16 value\n");
-                                       return -EINVAL;
-                               }
-                               adapter->locallisteninterval = data;
-                       }
-                       break;
-               case WLAN_TXCONTROL:
-                       ret = wlan_txcontrol(priv, wrq);        //adds for txcontrol ioctl
-                       break;
-
-               case WLAN_NULLPKTINTERVAL:
-                       ret = wlan_null_pkt_interval(priv, wrq);
-                       break;
-
-               default:
-                       ret = -EOPNOTSUPP;
-                       break;
-               }
-               break;
-
        case WLAN_SETONEINT_GETNONE:
                /* The first 4 bytes of req->ifr_data is sub-ioctl number
                 * after 4 bytes sits the payload.
                 */
-               subcmd = wrq->u.data.flags;     //from wpa_supplicant subcmd
-
+               subcmd = wrq->u.data.flags;
                if (!subcmd)
-                       subcmd = (int)req->ifr_data;    //from iwpriv subcmd
+                       subcmd = (int)wrq->u.param.value;
 
                switch (subcmd) {
-               case WLAN_SUBCMD_SETRXANTENNA:  /* SETRXANTENNA */
-                       idata = SUBCMD_DATA(wrq);
-                       ret = setrxantenna(priv, idata);
-                       break;
-               case WLAN_SUBCMD_SETTXANTENNA:  /* SETTXANTENNA */
-                       idata = SUBCMD_DATA(wrq);
-                       ret = settxantenna(priv, idata);
-                       break;
-               case WLAN_SET_ATIM_WINDOW:
-                       adapter->atimwindow = SUBCMD_DATA(wrq);
-                       adapter->atimwindow = min_t(__u16, adapter->atimwindow, 50);
-                       break;
-               case WLANSETBCNAVG:
-                       adapter->bcn_avg_factor = SUBCMD_DATA(wrq);
-                       if (adapter->bcn_avg_factor == 0)
-                               adapter->bcn_avg_factor =
-                                   DEFAULT_BCN_AVG_FACTOR;
-                       if (adapter->bcn_avg_factor > DEFAULT_BCN_AVG_FACTOR)
-                               adapter->bcn_avg_factor =
-                                   DEFAULT_BCN_AVG_FACTOR;
-                       break;
-               case WLANSETDATAAVG:
-                       adapter->data_avg_factor = SUBCMD_DATA(wrq);
-                       if (adapter->data_avg_factor == 0)
-                               adapter->data_avg_factor =
-                                   DEFAULT_DATA_AVG_FACTOR;
-                       if (adapter->data_avg_factor > DEFAULT_DATA_AVG_FACTOR)
-                               adapter->data_avg_factor =
-                                   DEFAULT_DATA_AVG_FACTOR;
-                       break;
                case WLANSETREGION:
                        idata = SUBCMD_DATA(wrq);
                        ret = wlan_set_region(priv, (u16) idata);
                        break;
-
-               case WLAN_SET_LISTEN_INTERVAL:
-                       idata = SUBCMD_DATA(wrq);
-                       adapter->listeninterval = (u16) idata;
-                       break;
-
-               case WLAN_SET_MULTIPLE_DTIM:
-                       ret = wlan_set_multiple_dtim_ioctl(priv, req);
-                       break;
-
-               case WLANSETAUTHALG:
-                       ret = wlan_setauthalg_ioctl(priv, req);
-                       break;
-
-               case WLANSET8021XAUTHALG:
-                       ret = wlan_set8021xauthalg_ioctl(priv, req);
-                       break;
-
-               case WLANSETENCRYPTIONMODE:
-                       ret = wlan_setencryptionmode_ioctl(priv, req);
-                       break;
-
-               case WLAN_SET_LINKMODE:
-                       ret = wlan_set_linkmode_ioctl(priv, req);
-                       break;
-
-               case WLAN_SET_RADIOMODE:
-                       ret = wlan_set_radiomode_ioctl(priv, req);
-                       break;
-
-               case WLAN_SET_DEBUGMODE:
-                       ret = wlan_set_debugmode_ioctl(priv, req);
-                       break;
-
                case WLAN_SUBCMD_MESH_SET_TTL:
                        idata = SUBCMD_DATA(wrq);
                        ret = wlan_mesh_set_ttl_ioctl(priv, idata);
@@ -2105,38 +855,8 @@ int libertas_do_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
 
                break;
 
-       case WLAN_SETNONE_GETTWELVE_CHAR:       /* Get Antenna settings */
-               /*
-                * We've not used IW_PRIV_TYPE_FIXED so sub-ioctl number is
-                * in flags of iwreq structure, otherwise it will be in
-                * mode member of iwreq structure.
-                */
-               switch ((int)wrq->u.data.flags) {
-               case WLAN_SUBCMD_GETRXANTENNA:  /* Get Rx Antenna */
-                       ret = wlan_subcmd_getrxantenna_ioctl(priv, req);
-                       break;
-
-               case WLAN_SUBCMD_GETTXANTENNA:  /* Get Tx Antenna */
-                       ret = wlan_subcmd_gettxantenna_ioctl(priv, req);
-                       break;
-
-               case WLAN_GET_TSF:
-                       ret = wlan_get_tsf_ioctl(priv, wrq);
-                       break;
-               }
-               break;
-
        case WLAN_SET128CHAR_GET128CHAR:
                switch ((int)wrq->u.data.flags) {
-
-               case WLANSCAN_MODE:
-                       lbs_pr_debug(1, "Scan mode Ioctl\n");
-                       ret = wlan_scan_mode_ioctl(priv, wrq);
-                       break;
-
-               case WLAN_GET_ADHOC_STATUS:
-                       ret = wlan_get_adhoc_status_ioctl(priv, wrq);
-                       break;
                case WLAN_SUBCMD_BT_ADD:
                        ret = wlan_bt_add_ioctl(priv, req);
                        break;
@@ -2168,41 +888,11 @@ int libertas_do_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
                break;
 
        case WLAN_SETNONE_GETONEINT:
-               switch ((int)req->ifr_data) {
-               case WLANGETBCNAVG:
-                       pdata = (int *)wrq->u.name;
-                       *pdata = (int)adapter->bcn_avg_factor;
-                       break;
-
+               switch (wrq->u.param.value) {
                case WLANGETREGION:
                        pdata = (int *)wrq->u.name;
                        *pdata = (int)adapter->regioncode;
                        break;
-
-               case WLAN_GET_LISTEN_INTERVAL:
-                       pdata = (int *)wrq->u.name;
-                       *pdata = (int)adapter->listeninterval;
-                       break;
-
-               case WLAN_GET_LINKMODE:
-                       req->ifr_data = (char *)((u32) adapter->linkmode);
-                       break;
-
-               case WLAN_GET_RADIOMODE:
-                       req->ifr_data = (char *)((u32) adapter->radiomode);
-                       break;
-
-               case WLAN_GET_DEBUGMODE:
-                       req->ifr_data = (char *)((u32) adapter->debugmode);
-                       break;
-
-               case WLAN_GET_MULTIPLE_DTIM:
-                       pdata = (int *)wrq->u.name;
-                       *pdata = (int)adapter->multipledtim;
-                       break;
-               case WLAN_GET_TX_RATE:
-                       ret = wlan_get_txrate_ioctl(priv, req);
-                       break;
                case WLAN_SUBCMD_FWT_CLEANUP:   /* fwt_cleanup */
                        ret = wlan_fwt_cleanup_ioctl(priv, req);
                        break;
@@ -2222,196 +912,8 @@ int libertas_do_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
 
                break;
 
-       case WLANGETLOG:
-               ret = wlan_do_getlog_ioctl(priv, wrq);
-               break;
-
        case WLAN_SET_GET_SIXTEEN_INT:
                switch ((int)wrq->u.data.flags) {
-               case WLAN_TPCCFG:
-                       {
-                               int data[5];
-                               struct cmd_ds_802_11_tpc_cfg cfg;
-                               memset(&cfg, 0, sizeof(cfg));
-                               if ((wrq->u.data.length > 1)
-                                   && (wrq->u.data.length != 5))
-                                       return -1;
-
-                               if (wrq->u.data.length == 0) {
-                                       cfg.action =
-                                           cpu_to_le16
-                                           (cmd_act_get);
-                               } else {
-                                       if (copy_from_user
-                                           (data, wrq->u.data.pointer,
-                                            sizeof(int) * 5)) {
-                                               lbs_pr_debug(1,
-                                                      "Copy from user failed\n");
-                                               return -EFAULT;
-                                       }
-
-                                       cfg.action =
-                                           cpu_to_le16
-                                           (cmd_act_set);
-                                       cfg.enable = data[0];
-                                       cfg.usesnr = data[1];
-                                       cfg.P0 = data[2];
-                                       cfg.P1 = data[3];
-                                       cfg.P2 = data[4];
-                               }
-
-                               ret =
-                                   libertas_prepare_and_send_command(priv,
-                                                         cmd_802_11_tpc_cfg,
-                                                         0,
-                                                         cmd_option_waitforrsp,
-                                                         0, (void *)&cfg);
-
-                               data[0] = cfg.enable;
-                               data[1] = cfg.usesnr;
-                               data[2] = cfg.P0;
-                               data[3] = cfg.P1;
-                               data[4] = cfg.P2;
-                               if (copy_to_user
-                                   (wrq->u.data.pointer, data,
-                                    sizeof(int) * 5)) {
-                                       lbs_pr_debug(1, "Copy to user failed\n");
-                                       return -EFAULT;
-                               }
-
-                               wrq->u.data.length = 5;
-                       }
-                       break;
-
-               case WLAN_POWERCFG:
-                       {
-                               int data[4];
-                               struct cmd_ds_802_11_pwr_cfg cfg;
-                               memset(&cfg, 0, sizeof(cfg));
-                               if ((wrq->u.data.length > 1)
-                                   && (wrq->u.data.length != 4))
-                                       return -1;
-                               if (wrq->u.data.length == 0) {
-                                       cfg.action =
-                                           cpu_to_le16
-                                           (cmd_act_get);
-                               } else {
-                                       if (copy_from_user
-                                           (data, wrq->u.data.pointer,
-                                            sizeof(int) * 4)) {
-                                               lbs_pr_debug(1,
-                                                      "Copy from user failed\n");
-                                               return -EFAULT;
-                                       }
-
-                                       cfg.action =
-                                           cpu_to_le16
-                                           (cmd_act_set);
-                                       cfg.enable = data[0];
-                                       cfg.PA_P0 = data[1];
-                                       cfg.PA_P1 = data[2];
-                                       cfg.PA_P2 = data[3];
-                               }
-                               ret =
-                                   libertas_prepare_and_send_command(priv,
-                                                         cmd_802_11_pwr_cfg,
-                                                         0,
-                                                         cmd_option_waitforrsp,
-                                                         0, (void *)&cfg);
-                               data[0] = cfg.enable;
-                               data[1] = cfg.PA_P0;
-                               data[2] = cfg.PA_P1;
-                               data[3] = cfg.PA_P2;
-                               if (copy_to_user
-                                   (wrq->u.data.pointer, data,
-                                    sizeof(int) * 4)) {
-                                       lbs_pr_debug(1, "Copy to user failed\n");
-                                       return -EFAULT;
-                               }
-
-                               wrq->u.data.length = 4;
-                       }
-                       break;
-               case WLAN_AUTO_FREQ_SET:
-                       {
-                               int data[3];
-                               struct cmd_ds_802_11_afc afc;
-                               memset(&afc, 0, sizeof(afc));
-                               if (wrq->u.data.length != 3)
-                                       return -1;
-                               if (copy_from_user
-                                   (data, wrq->u.data.pointer,
-                                    sizeof(int) * 3)) {
-                                       lbs_pr_debug(1, "Copy from user failed\n");
-                                       return -EFAULT;
-                               }
-                               afc.afc_auto = data[0];
-
-                               if (afc.afc_auto != 0) {
-                                       afc.threshold = data[1];
-                                       afc.period = data[2];
-                               } else {
-                                       afc.timing_offset = data[1];
-                                       afc.carrier_offset = data[2];
-                               }
-                               ret =
-                                   libertas_prepare_and_send_command(priv,
-                                                         cmd_802_11_set_afc,
-                                                         0,
-                                                         cmd_option_waitforrsp,
-                                                         0, (void *)&afc);
-                       }
-                       break;
-               case WLAN_AUTO_FREQ_GET:
-                       {
-                               int data[3];
-                               struct cmd_ds_802_11_afc afc;
-                               memset(&afc, 0, sizeof(afc));
-                               ret =
-                                   libertas_prepare_and_send_command(priv,
-                                                         cmd_802_11_get_afc,
-                                                         0,
-                                                         cmd_option_waitforrsp,
-                                                         0, (void *)&afc);
-                               data[0] = afc.afc_auto;
-                               data[1] = afc.timing_offset;
-                               data[2] = afc.carrier_offset;
-                               if (copy_to_user
-                                   (wrq->u.data.pointer, data,
-                                    sizeof(int) * 3)) {
-                                       lbs_pr_debug(1, "Copy to user failed\n");
-                                       return -EFAULT;
-                               }
-
-                               wrq->u.data.length = 3;
-                       }
-                       break;
-               case WLAN_SCANPROBES:
-                       {
-                               int data;
-                               if (wrq->u.data.length > 0) {
-                                       if (copy_from_user
-                                           (&data, wrq->u.data.pointer,
-                                            sizeof(int))) {
-                                               lbs_pr_debug(1,
-                                                      "Copy from user failed\n");
-                                               return -EFAULT;
-                                       }
-
-                                       adapter->scanprobes = data;
-                               } else {
-                                       data = adapter->scanprobes;
-                                       if (copy_to_user
-                                           (wrq->u.data.pointer, &data,
-                                            sizeof(int))) {
-                                               lbs_pr_debug(1,
-                                                      "Copy to user failed\n");
-                                               return -EFAULT;
-                                       }
-                               }
-                               wrq->u.data.length = 1;
-                       }
-                       break;
                case WLAN_LED_GPIO_CTRL:
                        {
                                int i;
@@ -2475,17 +977,6 @@ int libertas_do_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
                                wrq->u.data.length = gpio->header.len;
                        }
                        break;
-               case WLAN_ADAPT_RATESET:
-                       ret = wlan_adapt_rateset(priv, wrq);
-                       break;
-               case WLAN_INACTIVITY_TIMEOUT:
-                       ret = wlan_inactivity_timeout(priv, wrq);
-                       break;
-               case WLANSNR:
-                       ret = wlan_get_snr(priv, wrq);
-                       break;
-               case WLAN_GET_RXINFO:
-                       ret = wlan_get_rxinfo(priv, wrq);
                }
                break;
 
index 11682cbe752b841ffb37e497a69a7abcf9d1b9d0..d4926b83e14549fe5d1569473721a78b119c494d 100644 (file)
@@ -15,6 +15,8 @@
 #include "join.h"
 #include "dev.h"
 
+#define AD_HOC_CAP_PRIVACY_ON 1
+
 /**
  *  @brief This function finds out the common rates between rate1 and rate2.
  *
@@ -85,7 +87,7 @@ int libertas_send_deauth(wlan_private * priv)
        wlan_adapter *adapter = priv->adapter;
        int ret = 0;
 
-       if (adapter->inframode == wlan802_11infrastructure &&
+       if (adapter->mode == IW_MODE_INFRA &&
            adapter->connect_status == libertas_connected)
                ret = libertas_send_deauthentication(priv);
        else
@@ -94,20 +96,6 @@ int libertas_send_deauth(wlan_private * priv)
        return ret;
 }
 
-int libertas_do_adhocstop_ioctl(wlan_private * priv)
-{
-       wlan_adapter *adapter = priv->adapter;
-       int ret = 0;
-
-       if (adapter->inframode == wlan802_11ibss &&
-           adapter->connect_status == libertas_connected)
-               ret = libertas_stop_adhoc_network(priv);
-       else
-               ret = -ENOTSUPP;
-
-       return ret;
-}
-
 /**
  *  @brief Associate to a specific BSS discovered in a scan
  *
@@ -207,8 +195,7 @@ int libertas_join_adhoc_network(wlan_private * priv, struct bss_descriptor * pbs
        /* check if the requested SSID is already joined */
        if (adapter->curbssparams.ssid.ssidlength
            && !libertas_SSID_cmp(&pbssdesc->ssid, &adapter->curbssparams.ssid)
-           && (adapter->curbssparams.bssdescriptor.inframode ==
-               wlan802_11ibss)) {
+           && (adapter->mode == IW_MODE_ADHOC)) {
 
         lbs_pr_debug(1,
                       "ADHOC_J_CMD: New ad-hoc SSID is the same as current, "
@@ -260,130 +247,6 @@ int libertas_send_deauthentication(wlan_private * priv)
                                     0, cmd_option_waitforrsp, 0, NULL);
 }
 
-/**
- *  @brief Set Idle Off
- *
- *  @param priv         A pointer to wlan_private structure
- *  @return             0 --success, otherwise fail
- */
-int libertas_idle_off(wlan_private * priv)
-{
-       wlan_adapter *adapter = priv->adapter;
-       int ret = 0;
-       const u8 zeromac[] = { 0, 0, 0, 0, 0, 0 };
-       int i;
-
-       ENTER();
-
-       if (adapter->connect_status == libertas_disconnected) {
-               if (adapter->inframode == wlan802_11infrastructure) {
-                       if (memcmp(adapter->previousbssid, zeromac,
-                                  sizeof(zeromac)) != 0) {
-
-                               lbs_pr_debug(1, "Previous SSID = %s\n",
-                                      adapter->previousssid.ssid);
-                               lbs_pr_debug(1, "Previous BSSID = "
-                                      "%02x:%02x:%02x:%02x:%02x:%02x:\n",
-                                      adapter->previousbssid[0],
-                                      adapter->previousbssid[1],
-                                      adapter->previousbssid[2],
-                                      adapter->previousbssid[3],
-                                      adapter->previousbssid[4],
-                                      adapter->previousbssid[5]);
-
-                               i = libertas_find_SSID_in_list(adapter,
-                                                  &adapter->previousssid,
-                                                  adapter->previousbssid,
-                                                  adapter->inframode);
-
-                               if (i < 0) {
-                                       libertas_send_specific_BSSID_scan(priv,
-                                                             adapter->
-                                                             previousbssid,
-                                                             1);
-                                       i = libertas_find_SSID_in_list(adapter,
-                                                          &adapter->
-                                                          previousssid,
-                                                          adapter->
-                                                          previousbssid,
-                                                          adapter->
-                                                          inframode);
-                               }
-
-                               if (i < 0) {
-                                       /* If the BSSID could not be found, try just the SSID */
-                                       i = libertas_find_SSID_in_list(adapter,
-                                                          &adapter->
-                                                          previousssid, NULL,
-                                                          adapter->
-                                                          inframode);
-                               }
-
-                               if (i < 0) {
-                                       libertas_send_specific_SSID_scan(priv,
-                                                            &adapter->
-                                                            previousssid,
-                                                            1);
-                                       i = libertas_find_SSID_in_list(adapter,
-                                                          &adapter->
-                                                          previousssid, NULL,
-                                                          adapter->
-                                                          inframode);
-                               }
-
-                               if (i >= 0) {
-                                       ret =
-                                           wlan_associate(priv,
-                                                          &adapter->
-                                                          scantable[i]);
-                               }
-                       }
-               } else if (adapter->inframode == wlan802_11ibss) {
-                       ret = libertas_prepare_and_send_command(priv,
-                                                   cmd_802_11_ad_hoc_start,
-                                                   0,
-                                                   cmd_option_waitforrsp,
-                                                   0, &adapter->previousssid);
-               }
-       }
-       /* else it is connected */
-
-       lbs_pr_debug(1, "\nwlanidle is off");
-       LEAVE();
-       return ret;
-}
-
-/**
- *  @brief Set Idle On
- *
- *  @param priv         A pointer to wlan_private structure
- *  @return             0 --success, otherwise fail
- */
-int libertas_idle_on(wlan_private * priv)
-{
-       wlan_adapter *adapter = priv->adapter;
-       int ret = 0;
-
-       if (adapter->connect_status == libertas_connected) {
-               if (adapter->inframode == wlan802_11infrastructure) {
-                       lbs_pr_debug(1, "Previous SSID = %s\n",
-                              adapter->previousssid.ssid);
-                       memmove(&adapter->previousssid,
-                               &adapter->curbssparams.ssid,
-                               sizeof(struct WLAN_802_11_SSID));
-                       libertas_send_deauth(priv);
-
-               } else if (adapter->inframode == wlan802_11ibss) {
-                       ret = libertas_stop_adhoc_network(priv);
-               }
-
-       }
-
-       lbs_pr_debug(1, "\nwlanidle is on");
-
-       return ret;
-}
-
 /**
  *  @brief This function prepares command of authenticate.
  *
@@ -398,22 +261,39 @@ int libertas_cmd_80211_authenticate(wlan_private * priv,
                                 void *pdata_buf)
 {
        wlan_adapter *adapter = priv->adapter;
-       struct cmd_ds_802_11_authenticate *pauthenticate =
-           &cmd->params.auth;
+       struct cmd_ds_802_11_authenticate *pauthenticate = &cmd->params.auth;
+       int ret = -1;
        u8 *bssid = pdata_buf;
 
        cmd->command = cpu_to_le16(cmd_802_11_authenticate);
-       cmd->size =
-           cpu_to_le16(sizeof(struct cmd_ds_802_11_authenticate)
-                            + S_DS_GEN);
+       cmd->size = cpu_to_le16(sizeof(struct cmd_ds_802_11_authenticate)
+                               + S_DS_GEN);
+
+       /* translate auth mode to 802.11 defined wire value */
+       switch (adapter->secinfo.auth_mode) {
+       case IW_AUTH_ALG_OPEN_SYSTEM:
+               pauthenticate->authtype = 0x00;
+               break;
+       case IW_AUTH_ALG_SHARED_KEY:
+               pauthenticate->authtype = 0x01;
+               break;
+       case IW_AUTH_ALG_LEAP:
+               pauthenticate->authtype = 0x80;
+               break;
+       default:
+               lbs_pr_debug(1, "AUTH_CMD: invalid auth alg 0x%X\n",
+                            adapter->secinfo.auth_mode);
+               goto out;
+       }
 
-       pauthenticate->authtype = adapter->secinfo.authmode;
        memcpy(pauthenticate->macaddr, bssid, ETH_ALEN);
 
        lbs_pr_debug(1, "AUTH_CMD: Bssid is : %x:%x:%x:%x:%x:%x\n",
               bssid[0], bssid[1], bssid[2], bssid[3], bssid[4], bssid[5]);
+       ret = 0;
 
-       return 0;
+out:
+       return ret;
 }
 
 int libertas_cmd_80211_deauthenticate(wlan_private * priv,
@@ -550,7 +430,7 @@ int libertas_cmd_80211_associate(wlan_private * priv,
        lbs_pr_debug(1, "ASSOC_CMD: rates->header.len = %d\n", rates->header.len);
 
        /* set IBSS field */
-       if (pbssdesc->inframode == wlan802_11infrastructure) {
+       if (pbssdesc->mode == IW_MODE_INFRA) {
 #define CAPINFO_ESS_MODE 1
                passo->capinfo.ess = CAPINFO_ESS_MODE;
        }
@@ -624,7 +504,7 @@ int libertas_cmd_80211_ad_hoc_start(wlan_private * priv,
 
        /* set the BSS type */
        adhs->bsstype = cmd_bss_type_ibss;
-       pbssdesc->inframode = wlan802_11ibss;
+       pbssdesc->mode = IW_MODE_ADHOC;
        adhs->beaconperiod = adapter->beaconperiod;
 
        /* set Physical param set */
@@ -666,15 +546,12 @@ int libertas_cmd_80211_ad_hoc_start(wlan_private * priv,
        adhs->probedelay = cpu_to_le16(cmd_scan_probe_delay_time);
 
        /* set up privacy in adapter->scantable[i] */
-       if (adapter->secinfo.WEPstatus == wlan802_11WEPenabled) {
-
-#define AD_HOC_CAP_PRIVACY_ON 1
-               lbs_pr_debug(1, "ADHOC_S_CMD: WEPstatus set, privacy to WEP\n");
+       if (adapter->secinfo.wep_enabled) {
+               lbs_pr_debug(1, "ADHOC_S_CMD: WEP enabled, setting privacy on\n");
                pbssdesc->privacy = wlan802_11privfilter8021xWEP;
                adhs->cap.privacy = AD_HOC_CAP_PRIVACY_ON;
        } else {
-               lbs_pr_debug(1, "ADHOC_S_CMD: WEPstatus NOT set, Setting "
-                      "privacy to ACCEPT ALL\n");
+               lbs_pr_debug(1, "ADHOC_S_CMD: WEP disabled, setting privacy off\n");
                pbssdesc->privacy = wlan802_11privfilteracceptall;
        }
 
@@ -786,9 +663,6 @@ int libertas_cmd_80211_ad_hoc_join(wlan_private * priv,
               padhocjoin->bssdescriptor.BSSID[5],
               padhocjoin->bssdescriptor.SSID);
 
-       lbs_pr_debug(1, "ADHOC_J_CMD: Data Rate = %x\n",
-              (u32) padhocjoin->bssdescriptor.datarates);
-
        /* failtimeout */
        padhocjoin->failtimeout = cpu_to_le16(MRVDRV_ASSOCIATION_TIME_OUT);
 
@@ -832,7 +706,7 @@ int libertas_cmd_80211_ad_hoc_join(wlan_private * priv,
        padhocjoin->bssdescriptor.ssparamset.ibssparamset.atimwindow =
            cpu_to_le16(pbssdesc->atimwindow);
 
-       if (adapter->secinfo.WEPstatus == wlan802_11WEPenabled) {
+       if (adapter->secinfo.wep_enabled) {
                padhocjoin->bssdescriptor.cap.privacy = AD_HOC_CAP_PRIVACY_ON;
        }
 
index 8efa2455af9ad3fd129d2562349359619e9782a9..115f5a8ba34603733683c329cb4171beb57c1084 100644 (file)
@@ -1,6 +1,3 @@
-/* -*- mode: C; tab-width: 4; indent-tabs-mode: nil -*- */
-/* vi: set expandtab shiftwidth=4 tabstop=4 textwidth=78: */
-
 /**
   * Interface for the wlan infrastructure and adhoc join routines
   *
@@ -40,10 +37,6 @@ extern int libertas_ret_80211_disassociate(wlan_private * priv,
 extern int libertas_ret_80211_associate(wlan_private * priv,
                                     struct cmd_ds_command *resp);
 
-extern int libertas_idle_on(wlan_private * priv);
-extern int libertas_idle_off(wlan_private * priv);
-
-extern int libertas_do_adhocstop_ioctl(wlan_private * priv);
 extern int libertas_reassociation_thread(void *data);
 
 struct WLAN_802_11_SSID;
index dcbf102a057e79895fdf4e662fcc5bc412ab5a92..b9b25ce6591934e1ebbb0808765dc778bf1682c9 100644 (file)
 #include "debugfs.h"
 #include "assoc.h"
 
+#define DRIVER_RELEASE_VERSION "320.p0"
+const char libertas_driver_version[] = "COMM-USB8388-" DRIVER_RELEASE_VERSION
+#ifdef  DEBUG
+    "-dbg"
+#endif
+    "";
+
 #ifdef ENABLE_PM
 static struct pm_dev *wlan_pm_dev = NULL;
 #endif
index 7e3f78f092dcf8613e333da99418a1086c6c6b87..d17924f764e573d5edd537aefac261c817e28f6e 100644 (file)
@@ -210,7 +210,7 @@ int libertas_process_rxed_packet(wlan_private * priv, struct sk_buff *skb)
                goto done;
        }
 
-       lbs_pr_debug(1, "RX Data: skb->len - sizeof(RxPd) = %d - %d = %d\n",
+       lbs_pr_debug(1, "RX Data: skb->len - sizeof(RxPd) = %d - %zd = %zd\n",
               skb->len, sizeof(struct rxpd), skb->len - sizeof(struct rxpd));
 
        lbs_dbg_hex("RX Data: Dest", p_rx_pkt->eth803_hdr.dest_addr,
@@ -364,7 +364,7 @@ static int process_rxed_802_11_packet(wlan_private * priv, struct sk_buff *skb)
                priv->stats.rx_errors++;
        }
 
-       lbs_pr_debug(1, "RX Data: skb->len - sizeof(RxPd) = %d - %d = %d\n",
+       lbs_pr_debug(1, "RX Data: skb->len - sizeof(RxPd) = %d - %zd = %zd\n",
               skb->len, sizeof(struct rxpd), skb->len - sizeof(struct rxpd));
 
        /* create the exported radio header */
index e18706238951df24116d6bb15c7d6e64747f7285..3c0b1a2a172748a150a9cec7c8b2f4db195f3cfd 100644 (file)
@@ -1,6 +1,3 @@
-/* -*- mode: C; tab-width: 4; indent-tabs-mode: nil -*- */
-/* vi: set expandtab shiftwidth=4 tabstop=4 textwidth=78: */
-
 /**
   * Functions implementing wlan scan IOCTL and firmware command APIs
   *
  *
  *  @return        Index in scantable, or error code if negative
  */
-static int is_network_compatible(wlan_adapter * adapter, int index, int mode)
+static int is_network_compatible(wlan_adapter * adapter, int index, u8 mode)
 {
        ENTER();
 
-       if (adapter->scantable[index].inframode == mode) {
-               if (adapter->secinfo.WEPstatus == wlan802_11WEPdisabled
+       if (adapter->scantable[index].mode == mode) {
+               if (   !adapter->secinfo.wep_enabled
                    && !adapter->secinfo.WPAenabled
                    && !adapter->secinfo.WPA2enabled
-                   && adapter->scantable[index].wpa_supplicant.wpa_ie[0] !=
-                   WPA_IE
-                   && adapter->scantable[index].wpa2_supplicant.wpa_ie[0] !=
-                   WPA2_IE && adapter->secinfo.Encryptionmode == CIPHER_NONE
+                   && adapter->scantable[index].wpa_ie[0] != WPA_IE
+                   && adapter->scantable[index].rsn_ie[0] != WPA2_IE
                    && !adapter->scantable[index].privacy) {
                        /* no security */
                        LEAVE();
                        return index;
-               } else if (adapter->secinfo.WEPstatus == wlan802_11WEPenabled
+               } else if (   adapter->secinfo.wep_enabled
                           && !adapter->secinfo.WPAenabled
                           && !adapter->secinfo.WPA2enabled
                           && adapter->scantable[index].privacy) {
                        /* static WEP enabled */
                        LEAVE();
                        return index;
-               } else if (adapter->secinfo.WEPstatus == wlan802_11WEPdisabled
+               } else if (   !adapter->secinfo.wep_enabled
                           && adapter->secinfo.WPAenabled
                           && !adapter->secinfo.WPA2enabled
-                          && (adapter->scantable[index].wpa_supplicant.
-                              wpa_ie[0]
-                              == WPA_IE)
+                          && (adapter->scantable[index].wpa_ie[0] == WPA_IE)
                           /* privacy bit may NOT be set in some APs like LinkSys WRT54G
                              && adapter->scantable[index].privacy */
                    ) {
                        /* WPA enabled */
-            lbs_pr_debug(1,
+                       lbs_pr_debug(1,
                               "is_network_compatible() WPA: index=%d wpa_ie=%#x "
-                              "wpa2_ie=%#x WEP=%s WPA=%s WPA2=%s Encmode=%#x "
+                              "wpa2_ie=%#x WEP=%s WPA=%s WPA2=%s "
                               "privacy=%#x\n", index,
-                              adapter->scantable[index].wpa_supplicant.
-                              wpa_ie[0],
-                              adapter->scantable[index].wpa2_supplicant.
-                              wpa_ie[0],
-                              (adapter->secinfo.WEPstatus ==
-                               wlan802_11WEPenabled) ? "e" : "d",
-                              (adapter->secinfo.WPAenabled) ? "e" : "d",
-                              (adapter->secinfo.WPA2enabled) ? "e" : "d",
-                              adapter->secinfo.Encryptionmode,
+                              adapter->scantable[index].wpa_ie[0],
+                              adapter->scantable[index].rsn_ie[0],
+                              adapter->secinfo.wep_enabled ? "e" : "d",
+                              adapter->secinfo.WPAenabled ? "e" : "d",
+                              adapter->secinfo.WPA2enabled ? "e" : "d",
                               adapter->scantable[index].privacy);
                        LEAVE();
                        return index;
-               } else if (adapter->secinfo.WEPstatus == wlan802_11WEPdisabled
+               } else if (   !adapter->secinfo.wep_enabled
                           && !adapter->secinfo.WPAenabled
                           && adapter->secinfo.WPA2enabled
-                          && (adapter->scantable[index].wpa2_supplicant.
-                              wpa_ie[0]
-                              == WPA2_IE)
+                          && (adapter->scantable[index].rsn_ie[0] == WPA2_IE)
                           /* privacy bit may NOT be set in some APs like LinkSys WRT54G
                              && adapter->scantable[index].privacy */
                    ) {
                        /* WPA2 enabled */
-            lbs_pr_debug(1,
+                       lbs_pr_debug(1,
                               "is_network_compatible() WPA2: index=%d wpa_ie=%#x "
-                              "wpa2_ie=%#x WEP=%s WPA=%s WPA2=%s Encmode=%#x "
+                              "wpa2_ie=%#x WEP=%s WPA=%s WPA2=%s "
                               "privacy=%#x\n", index,
-                              adapter->scantable[index].wpa_supplicant.
-                              wpa_ie[0],
-                              adapter->scantable[index].wpa2_supplicant.
-                              wpa_ie[0],
-                              (adapter->secinfo.WEPstatus ==
-                               wlan802_11WEPenabled) ? "e" : "d",
-                              (adapter->secinfo.WPAenabled) ? "e" : "d",
-                              (adapter->secinfo.WPA2enabled) ? "e" : "d",
-                              adapter->secinfo.Encryptionmode,
+                              adapter->scantable[index].wpa_ie[0],
+                              adapter->scantable[index].rsn_ie[0],
+                              adapter->secinfo.wep_enabled ? "e" : "d",
+                              adapter->secinfo.WPAenabled ? "e" : "d",
+                              adapter->secinfo.WPA2enabled ? "e" : "d",
                               adapter->scantable[index].privacy);
                        LEAVE();
                        return index;
-               } else if (adapter->secinfo.WEPstatus == wlan802_11WEPdisabled
+               } else if (   !adapter->secinfo.wep_enabled
                           && !adapter->secinfo.WPAenabled
                           && !adapter->secinfo.WPA2enabled
-                          && (adapter->scantable[index].wpa_supplicant.
-                              wpa_ie[0]
-                              != WPA_IE)
-                          && (adapter->scantable[index].wpa2_supplicant.
-                              wpa_ie[0]
-                              != WPA2_IE)
-                          && adapter->secinfo.Encryptionmode != CIPHER_NONE
+                          && (adapter->scantable[index].wpa_ie[0] != WPA_IE)
+                          && (adapter->scantable[index].rsn_ie[0] != WPA2_IE)
                           && adapter->scantable[index].privacy) {
                        /* dynamic WEP enabled */
-            lbs_pr_debug(1,
+                       lbs_pr_debug(1,
                               "is_network_compatible() dynamic WEP: index=%d "
-                              "wpa_ie=%#x wpa2_ie=%#x Encmode=%#x privacy=%#x\n",
+                              "wpa_ie=%#x wpa2_ie=%#x privacy=%#x\n",
                               index,
-                              adapter->scantable[index].wpa_supplicant.
-                              wpa_ie[0],
-                              adapter->scantable[index].wpa2_supplicant.
-                              wpa_ie[0], adapter->secinfo.Encryptionmode,
+                              adapter->scantable[index].wpa_ie[0],
+                              adapter->scantable[index].rsn_ie[0],
                               adapter->scantable[index].privacy);
                        LEAVE();
                        return index;
                }
 
                /* security doesn't match */
-        lbs_pr_debug(1,
+               lbs_pr_debug(1,
                       "is_network_compatible() FAILED: index=%d wpa_ie=%#x "
-                      "wpa2_ie=%#x WEP=%s WPA=%s WPA2=%s Encmode=%#x privacy=%#x\n",
+                      "wpa2_ie=%#x WEP=%s WPA=%s WPA2=%s privacy=%#x\n",
                       index,
-                      adapter->scantable[index].wpa_supplicant.wpa_ie[0],
-                      adapter->scantable[index].wpa2_supplicant.wpa_ie[0],
-                      (adapter->secinfo.WEPstatus ==
-                       wlan802_11WEPenabled) ? "e" : "d",
-                      (adapter->secinfo.WPAenabled) ? "e" : "d",
-                      (adapter->secinfo.WPA2enabled) ? "e" : "d",
-                      adapter->secinfo.Encryptionmode,
+                      adapter->scantable[index].wpa_ie[0],
+                      adapter->scantable[index].rsn_ie[0],
+                      adapter->secinfo.wep_enabled ? "e" : "d",
+                      adapter->secinfo.WPAenabled ? "e" : "d",
+                      adapter->secinfo.WPA2enabled ? "e" : "d",
                       adapter->scantable[index].privacy);
                LEAVE();
                return -ECONNREFUSED;
@@ -924,8 +898,6 @@ static int InterpretBSSDescriptionWithIE(struct bss_descriptor * pBSSEntry,
        u8 founddatarateie;
        int bytesleftforcurrentbeacon;
 
-       struct WPA_SUPPLICANT *pwpa_supplicant;
-       struct WPA_SUPPLICANT *pwpa2_supplicant;
        struct IE_WPA *pIe;
        const u8 oui01[4] = { 0x00, 0x50, 0xf2, 0x01 };
 
@@ -962,9 +934,6 @@ static int InterpretBSSDescriptionWithIE(struct bss_descriptor * pBSSEntry,
 
        bytesleftforcurrentbeacon = beaconsize;
 
-       pwpa_supplicant = &pBSSEntry->wpa_supplicant;
-       pwpa2_supplicant = &pBSSEntry->wpa2_supplicant;
-
        memcpy(pBSSEntry->macaddress, pcurrentptr, ETH_ALEN);
        lbs_pr_debug(1, "InterpretIE: AP MAC Addr-%x:%x:%x:%x:%x:%x\n",
               pBSSEntry->macaddress[0], pBSSEntry->macaddress[1],
@@ -1027,9 +996,9 @@ static int InterpretBSSDescriptionWithIE(struct bss_descriptor * pBSSEntry,
        }
 
        if (pcap->ibss == 1) {
-               pBSSEntry->inframode = wlan802_11ibss;
+               pBSSEntry->mode = IW_MODE_ADHOC;
        } else {
-               pBSSEntry->inframode = wlan802_11infrastructure;
+               pBSSEntry->mode = IW_MODE_INFRA;
        }
 
        /* process variable IE */
@@ -1116,7 +1085,7 @@ static int InterpretBSSDescriptionWithIE(struct bss_descriptor * pBSSEntry,
                            sizeof(pcountryinfo->countrycode)
                            || pcountryinfo->len > 254) {
                                lbs_pr_debug(1, "InterpretIE: 11D- Err "
-                                      "CountryInfo len =%d min=%d max=254\n",
+                                      "CountryInfo len =%d min=%zd max=254\n",
                                       pcountryinfo->len,
                                       sizeof(pcountryinfo->countrycode));
                                LEAVE();
@@ -1160,27 +1129,27 @@ static int InterpretBSSDescriptionWithIE(struct bss_descriptor * pBSSEntry,
 #define IE_ID_LEN_FIELDS_BYTES 2
                        pIe = (struct IE_WPA *)pcurrentptr;
 
-                       if (!memcmp(pIe->oui, oui01, sizeof(oui01))) {
-                               pwpa_supplicant->wpa_ie_len
-                                   = min_t(size_t, elemlen + IE_ID_LEN_FIELDS_BYTES,
-                                         sizeof(pwpa_supplicant->wpa_ie));
-                               memcpy(pwpa_supplicant->wpa_ie,
-                                      pcurrentptr,
-                                      pwpa_supplicant->wpa_ie_len);
-                               lbs_dbg_hex("InterpretIE: Resp WPA_IE",
-                                       pwpa_supplicant->wpa_ie, elemlen);
-                       }
+                       if (memcmp(pIe->oui, oui01, sizeof(oui01)))
+                               break;
+
+                       pBSSEntry->wpa_ie_len = min_t(size_t,
+                               elemlen + IE_ID_LEN_FIELDS_BYTES,
+                               sizeof(pBSSEntry->wpa_ie));
+                       memcpy(pBSSEntry->wpa_ie, pcurrentptr,
+                               pBSSEntry->wpa_ie_len);
+                       lbs_dbg_hex("InterpretIE: Resp WPA_IE",
+                               pBSSEntry->wpa_ie, elemlen);
                        break;
                case WPA2_IE:
                        pIe = (struct IE_WPA *)pcurrentptr;
-                       pwpa2_supplicant->wpa_ie_len
-                           = min_t(size_t, elemlen + IE_ID_LEN_FIELDS_BYTES,
-                                 sizeof(pwpa2_supplicant->wpa_ie));
-                       memcpy(pwpa2_supplicant->wpa_ie,
-                              pcurrentptr, pwpa2_supplicant->wpa_ie_len);
 
+                       pBSSEntry->rsn_ie_len = min_t(size_t,
+                               elemlen + IE_ID_LEN_FIELDS_BYTES,
+                               sizeof(pBSSEntry->rsn_ie));
+                       memcpy(pBSSEntry->rsn_ie, pcurrentptr,
+                               pBSSEntry->rsn_ie_len);
                        lbs_dbg_hex("InterpretIE: Resp WPA2_IE",
-                               pwpa2_supplicant->wpa_ie, elemlen);
+                               pBSSEntry->rsn_ie, elemlen);
                        break;
                case TIM:
                        break;
@@ -1227,7 +1196,7 @@ int libertas_SSID_cmp(struct WLAN_802_11_SSID *ssid1, struct WLAN_802_11_SSID *s
  *
  *  @return         index in BSSID list, or error return code (< 0)
  */
-int libertas_find_BSSID_in_list(wlan_adapter * adapter, u8 * bssid, int mode)
+int libertas_find_BSSID_in_list(wlan_adapter * adapter, u8 * bssid, u8 mode)
 {
        int ret = -ENETUNREACH;
        int i;
@@ -1247,8 +1216,8 @@ int libertas_find_BSSID_in_list(wlan_adapter * adapter, u8 * bssid, int mode)
        for (i = 0; ret < 0 && i < adapter->numinscantable; i++) {
                if (!memcmp(adapter->scantable[i].macaddress, bssid, ETH_ALEN)) {
                        switch (mode) {
-                       case wlan802_11infrastructure:
-                       case wlan802_11ibss:
+                       case IW_MODE_INFRA:
+                       case IW_MODE_ADHOC:
                                ret = is_network_compatible(adapter, i, mode);
                                break;
                        default:
@@ -1272,7 +1241,7 @@ int libertas_find_BSSID_in_list(wlan_adapter * adapter, u8 * bssid, int mode)
  *  @return         index in BSSID list
  */
 int libertas_find_SSID_in_list(wlan_adapter * adapter,
-                  struct WLAN_802_11_SSID *ssid, u8 * bssid, int mode)
+                  struct WLAN_802_11_SSID *ssid, u8 * bssid, u8 mode)
 {
        int net = -ENETUNREACH;
        u8 bestrssi = 0;
@@ -1287,8 +1256,8 @@ int libertas_find_SSID_in_list(wlan_adapter * adapter,
                     !memcmp(adapter->scantable[i].
                             macaddress, bssid, ETH_ALEN))) {
                        switch (mode) {
-                       case wlan802_11infrastructure:
-                       case wlan802_11ibss:
+                       case IW_MODE_INFRA:
+                       case IW_MODE_ADHOC:
                                j = is_network_compatible(adapter, i, mode);
 
                                if (j >= 0) {
@@ -1311,7 +1280,7 @@ int libertas_find_SSID_in_list(wlan_adapter * adapter,
                                        }
                                }
                                break;
-                       case wlan802_11autounknown:
+                       case IW_MODE_AUTO:
                        default:
                                if (SCAN_RSSI(adapter->scantable[i].rssi)
                                    > bestrssi) {
@@ -1338,8 +1307,7 @@ int libertas_find_SSID_in_list(wlan_adapter * adapter,
  *
  *  @return         index in BSSID list
  */
-int libertas_find_best_SSID_in_list(wlan_adapter * adapter,
-                                    enum WLAN_802_11_NETWORK_INFRASTRUCTURE mode)
+int libertas_find_best_SSID_in_list(wlan_adapter * adapter, u8 mode)
 {
        int bestnet = -ENETUNREACH;
        u8 bestrssi = 0;
@@ -1351,8 +1319,8 @@ int libertas_find_best_SSID_in_list(wlan_adapter * adapter,
 
        for (i = 0; i < adapter->numinscantable; i++) {
                switch (mode) {
-               case wlan802_11infrastructure:
-               case wlan802_11ibss:
+               case IW_MODE_INFRA:
+               case IW_MODE_ADHOC:
                        if (is_network_compatible(adapter, i, mode) >= 0) {
                                if (SCAN_RSSI(adapter->scantable[i].rssi) >
                                    bestrssi) {
@@ -1363,7 +1331,7 @@ int libertas_find_best_SSID_in_list(wlan_adapter * adapter,
                                }
                        }
                        break;
-               case wlan802_11autounknown:
+               case IW_MODE_AUTO:
                default:
                        if (SCAN_RSSI(adapter->scantable[i].rssi) > bestrssi) {
                                bestrssi =
@@ -1388,8 +1356,7 @@ int libertas_find_best_SSID_in_list(wlan_adapter * adapter,
  */
 int libertas_find_best_network_SSID(wlan_private * priv,
                                     struct WLAN_802_11_SSID *pSSID,
-                                    enum WLAN_802_11_NETWORK_INFRASTRUCTURE preferred_mode,
-                                    enum WLAN_802_11_NETWORK_INFRASTRUCTURE *out_mode)
+                                    u8 preferred_mode, u8 *out_mode)
 {
        wlan_adapter *adapter = priv->adapter;
        int ret = 0;
@@ -1414,7 +1381,7 @@ int libertas_find_best_network_SSID(wlan_private * priv,
        preqbssid = &adapter->scantable[i];
        memcpy(pSSID, &preqbssid->ssid,
               sizeof(struct WLAN_802_11_SSID));
-       *out_mode = preqbssid->inframode;
+       *out_mode = preqbssid->mode;
 
        if (!pSSID->ssidlength) {
                ret = -1;
@@ -1584,7 +1551,7 @@ int libertas_get_scan(struct net_device *dev, struct iw_request_info *info,
        for (i = 0; i < adapter->numinscantable; i++) {
                if ((current_ev + MAX_SCAN_CELL_SIZE) >= end_buf) {
                        lbs_pr_debug(1, "i=%d break out: current_ev=%p end_buf=%p "
-                              "MAX_SCAN_CELL_SIZE=%d\n",
+                              "MAX_SCAN_CELL_SIZE=%zd\n",
                               i, current_ev, end_buf, MAX_SCAN_CELL_SIZE);
                        break;
                }
@@ -1632,7 +1599,7 @@ int libertas_get_scan(struct net_device *dev, struct iw_request_info *info,
 
                //Add mode
                iwe.cmd = SIOCGIWMODE;
-               iwe.u.mode = adapter->scantable[i].inframode + 1;
+               iwe.u.mode = adapter->scantable[i].mode;
                iwe.len = IW_EV_UINT_LEN;
                current_ev =
                    iwe_stream_add_event(current_ev, end_buf, &iwe, iwe.len);
@@ -1666,7 +1633,7 @@ int libertas_get_scan(struct net_device *dev, struct iw_request_info *info,
                        iwe.u.qual.noise =
                            CAL_NF(adapter->NF[TYPE_BEACON][TYPE_NOAVG]);
                }
-               if ((adapter->inframode == wlan802_11ibss) &&
+               if ((adapter->mode == IW_MODE_ADHOC) &&
                    !libertas_SSID_cmp(&adapter->curbssparams.ssid,
                             &adapter->scantable[i].ssid)
                    && adapter->adhoccreate) {
@@ -1731,7 +1698,7 @@ int libertas_get_scan(struct net_device *dev, struct iw_request_info *info,
                                                 end_buf, &iwe, iwe.len);
 
                }
-               if ((adapter->scantable[i].inframode == wlan802_11ibss)
+               if ((adapter->scantable[i].mode == IW_MODE_ADHOC)
                    && !libertas_SSID_cmp(&adapter->curbssparams.ssid,
                                &adapter->scantable[i].ssid)
                    && adapter->adhoccreate) {
@@ -1745,30 +1712,24 @@ int libertas_get_scan(struct net_device *dev, struct iw_request_info *info,
                /* Add new value to event */
                current_val = current_ev + IW_EV_LCP_LEN;
 
-               if (adapter->scantable[i].wpa2_supplicant.wpa_ie[0] == WPA2_IE) {
+               if (adapter->scantable[i].rsn_ie[0] == WPA2_IE) {
                        memset(&iwe, 0, sizeof(iwe));
                        memset(buf, 0, sizeof(buf));
-                       memcpy(buf, adapter->scantable[i].
-                                               wpa2_supplicant.wpa_ie,
-                                       adapter->scantable[i].wpa2_supplicant.
-                                               wpa_ie_len);
+                       memcpy(buf, adapter->scantable[i].rsn_ie,
+                                       adapter->scantable[i].rsn_ie_len);
                        iwe.cmd = IWEVGENIE;
-                       iwe.u.data.length = adapter->scantable[i].
-                                       wpa2_supplicant.wpa_ie_len;
+                       iwe.u.data.length = adapter->scantable[i].rsn_ie_len;
                        iwe.len = IW_EV_POINT_LEN + iwe.u.data.length;
                        current_ev = iwe_stream_add_point(current_ev, end_buf,
                                        &iwe, buf);
                }
-               if (adapter->scantable[i].wpa_supplicant.wpa_ie[0] == WPA_IE) {
+               if (adapter->scantable[i].wpa_ie[0] == WPA_IE) {
                        memset(&iwe, 0, sizeof(iwe));
                        memset(buf, 0, sizeof(buf));
-                       memcpy(buf, adapter->scantable[i].
-                                               wpa_supplicant.wpa_ie,
-                                       adapter->scantable[i].wpa_supplicant.
-                                               wpa_ie_len);
+                       memcpy(buf, adapter->scantable[i].wpa_ie,
+                                       adapter->scantable[i].wpa_ie_len);
                        iwe.cmd = IWEVGENIE;
-                       iwe.u.data.length = adapter->scantable[i].
-                                       wpa_supplicant.wpa_ie_len;
+                       iwe.u.data.length = adapter->scantable[i].wpa_ie_len;
                        iwe.len = IW_EV_POINT_LEN + iwe.u.data.length;
                        current_ev = iwe_stream_add_point(current_ev, end_buf,
                                        &iwe, buf);
index d93aa7fa44fd9ad3c19815d0d03fa5fec2279420..405f4f0fe575b2164295c6475cc78c1634e76558 100644 (file)
@@ -1,6 +1,3 @@
-/* -*- mode: C; tab-width: 4; indent-tabs-mode: nil -*- */
-/* vi: set expandtab shiftwidth=4 tabstop=4 textwidth=78: */
-
 /**
   * Interface for the wlan network scan routines
   *
@@ -10,6 +7,7 @@
 #ifndef _WLAN_SCAN_H
 #define _WLAN_SCAN_H
 
+#include <net/ieee80211.h>
 #include "hostcmd.h"
 
 /**
@@ -155,7 +153,7 @@ struct bss_descriptor {
 
        u32 atimwindow;
 
-       enum WLAN_802_11_NETWORK_INFRASTRUCTURE inframode;
+       u8 mode;
        u8 libertas_supported_rates[WLAN_SUPPORTED_RATES];
 
        int extra_ie;
@@ -170,22 +168,22 @@ struct bss_descriptor {
 
        struct ieeetypes_countryinfofullset countryinfo;
 
-       struct WPA_SUPPLICANT wpa_supplicant;
-       struct WPA_SUPPLICANT wpa2_supplicant;
-
+       u8 wpa_ie[MAX_WPA_IE_LEN];
+       size_t wpa_ie_len;
+       u8 rsn_ie[MAX_WPA_IE_LEN];
+       size_t rsn_ie_len;
 };
 
 extern int libertas_SSID_cmp(struct WLAN_802_11_SSID *ssid1,
                   struct WLAN_802_11_SSID *ssid2);
 extern int libertas_find_SSID_in_list(wlan_adapter * adapter, struct WLAN_802_11_SSID *ssid,
-                         u8 * bssid, int mode);
-int libertas_find_best_SSID_in_list(wlan_adapter * adapter, enum WLAN_802_11_NETWORK_INFRASTRUCTURE mode);
-extern int libertas_find_BSSID_in_list(wlan_adapter * adapter, u8 * bssid, int mode);
+                         u8 * bssid, u8 mode);
+int libertas_find_best_SSID_in_list(wlan_adapter * adapter, u8 mode);
+extern int libertas_find_BSSID_in_list(wlan_adapter * adapter, u8 * bssid, u8 mode);
 
 int libertas_find_best_network_SSID(wlan_private * priv,
                        struct WLAN_802_11_SSID *pSSID,
-                       enum WLAN_802_11_NETWORK_INFRASTRUCTURE preferred_mode,
-                       enum WLAN_802_11_NETWORK_INFRASTRUCTURE *out_mode);
+                       u8 preferred_mode, u8 *out_mode);
 
 extern int libertas_send_specific_SSID_scan(wlan_private * priv,
                                struct WLAN_802_11_SSID *prequestedssid,
index 82d06223043e50c1024a7295a99b3c79bb61d85e..d4b13478c9a7efaf3c48c5fda957c2df46b73d21 100644 (file)
@@ -78,7 +78,7 @@ static int SendSinglePacket(wlan_private * priv, struct sk_buff *skb)
                         min_t(unsigned int, skb->len, 100));
 
        if (!skb->len || (skb->len > MRVDRV_ETH_TX_PACKET_BUFFER_SIZE)) {
-               lbs_pr_debug(1, "Tx error: Bad skb length %d : %d\n",
+               lbs_pr_debug(1, "Tx error: Bad skb length %d : %zd\n",
                       skb->len, MRVDRV_ETH_TX_PACKET_BUFFER_SIZE);
                ret = -1;
                goto done;
index e86f65ae79b8b9fc495e02881a8093a1245553a1..8b137891791fe96927ad78e64b0aad7bded08bdc 100644 (file)
@@ -1,8 +1 @@
-#define DRIVER_RELEASE_VERSION "320.p0"
-const char libertas_driver_version[] = "COMM-USB8388-" DRIVER_RELEASE_VERSION
-#ifdef  DEBUG
-    "-dbg"
-#endif
-    "";
-
 
index 4a52336bc0f65cf134b503544728a431fa96a438..69f52b6e59c865d58a7583d6521d00c370e56a7a 100644 (file)
@@ -17,7 +17,6 @@
 #include "defs.h"
 #include "dev.h"
 #include "join.h"
-#include "version.h"
 #include "wext.h"
 #include "assoc.h"
 
@@ -233,7 +232,7 @@ static int changeadhocchannel(wlan_private * priv, int channel)
 
                // find out the BSSID that matches the current SSID
                i = libertas_find_SSID_in_list(adapter, &curadhocssid, NULL,
-                                  wlan802_11ibss);
+                                  IW_MODE_ADHOC);
 
                if (i >= 0) {
                        lbs_pr_debug(1, "SSID found at %d in List,"
@@ -316,13 +315,11 @@ static int get_active_data_rates(wlan_adapter * adapter,
        ENTER();
 
        if (adapter->connect_status != libertas_connected) {
-               if (adapter->inframode == wlan802_11infrastructure) {
-                       //Infra. mode
+               if (adapter->mode == IW_MODE_INFRA) {
                        lbs_pr_debug(1, "Infra\n");
                        k = copyrates(rates, k, libertas_supported_rates,
                                      sizeof(libertas_supported_rates));
                } else {
-                       //ad-hoc mode
                        lbs_pr_debug(1, "Adhoc G\n");
                        k = copyrates(rates, k, libertas_adhoc_rates_g,
                                      sizeof(libertas_adhoc_rates_g));
@@ -586,20 +583,7 @@ static int wlan_get_mode(struct net_device *dev,
 
        ENTER();
 
-       switch (adapter->inframode) {
-       case wlan802_11ibss:
-               *uwrq = IW_MODE_ADHOC;
-               break;
-
-       case wlan802_11infrastructure:
-               *uwrq = IW_MODE_INFRA;
-               break;
-
-       default:
-       case wlan802_11autounknown:
-               *uwrq = IW_MODE_AUTO;
-               break;
-       }
+       *uwrq = adapter->mode;
 
        LEAVE();
        return 0;
@@ -1002,148 +986,17 @@ static const struct iw_priv_args wlan_private_args[] = {
        /*
         * { cmd, set_args, get_args, name }
         */
-       {
-        WLANSCAN_TYPE,
-        IW_PRIV_TYPE_CHAR | 8,
-        IW_PRIV_TYPE_CHAR | 8,
-        "scantype"},
-
-       {
-        WLAN_SETINT_GETINT,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        ""},
-       {
-        WLANNF,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        "getNF"},
-       {
-        WLANRSSI,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        "getRSSI"},
-       {
-        WLANENABLE11D,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        "enable11d"},
-       {
-        WLANADHOCGRATE,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        "adhocgrate"},
-
-       {
-        WLAN_SUBCMD_SET_PRESCAN,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        "prescan"},
-       {
-        WLAN_SETONEINT_GETONEINT,
-        IW_PRIV_TYPE_INT | 1,
-        IW_PRIV_TYPE_INT | 1,
-        ""},
-       {
-        WLAN_BEACON_INTERVAL,
-        IW_PRIV_TYPE_INT | 1,
-        IW_PRIV_TYPE_INT | 1,
-        "bcninterval"},
-       {
-        WLAN_LISTENINTRVL,
-        IW_PRIV_TYPE_INT | 1,
-        IW_PRIV_TYPE_INT | 1,
-        "lolisteninter"},
-       {
-        WLAN_TXCONTROL,
-        IW_PRIV_TYPE_INT | 1,
-        IW_PRIV_TYPE_INT | 1,
-        "txcontrol"},
-       {
-        WLAN_NULLPKTINTERVAL,
-        IW_PRIV_TYPE_INT | 1,
-        IW_PRIV_TYPE_INT | 1,
-        "psnullinterval"},
        /* Using iwpriv sub-command feature */
        {
         WLAN_SETONEINT_GETNONE,        /* IOCTL: 24 */
         IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
         IW_PRIV_TYPE_NONE,
         ""},
-
-       {
-        WLAN_SUBCMD_SETRXANTENNA,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        IW_PRIV_TYPE_NONE,
-        "setrxant"},
-       {
-        WLAN_SUBCMD_SETTXANTENNA,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        IW_PRIV_TYPE_NONE,
-        "settxant"},
-       {
-        WLANSETAUTHALG,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        IW_PRIV_TYPE_NONE,
-        "authalgs",
-        },
-       {
-        WLANSET8021XAUTHALG,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        IW_PRIV_TYPE_NONE,
-        "8021xauthalgs",
-        },
-       {
-        WLANSETENCRYPTIONMODE,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        IW_PRIV_TYPE_NONE,
-        "encryptionmode",
-        },
        {
         WLANSETREGION,
         IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
         IW_PRIV_TYPE_NONE,
         "setregioncode"},
-       {
-        WLAN_SET_LISTEN_INTERVAL,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        IW_PRIV_TYPE_NONE,
-        "setlisteninter"},
-       {
-        WLAN_SET_MULTIPLE_DTIM,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        IW_PRIV_TYPE_NONE,
-        "setmultipledtim"},
-       {
-        WLAN_SET_ATIM_WINDOW,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        IW_PRIV_TYPE_NONE,
-        "atimwindow"},
-       {
-        WLANSETBCNAVG,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        IW_PRIV_TYPE_NONE,
-        "setbcnavg"},
-       {
-        WLANSETDATAAVG,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        IW_PRIV_TYPE_NONE,
-        "setdataavg"},
-       {
-        WLAN_SET_LINKMODE,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        IW_PRIV_TYPE_NONE,
-        "linkmode"},
-       {
-        WLAN_SET_RADIOMODE,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        IW_PRIV_TYPE_NONE,
-        "radiomode"},
-       {
-        WLAN_SET_DEBUGMODE,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        IW_PRIV_TYPE_NONE,
-        "debugmode"},
        {
         WLAN_SUBCMD_MESH_SET_TTL,
         IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
@@ -1159,41 +1012,6 @@ static const struct iw_priv_args wlan_private_args[] = {
         IW_PRIV_TYPE_NONE,
         IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
         "getregioncode"},
-       {
-        WLAN_GET_LISTEN_INTERVAL,
-        IW_PRIV_TYPE_NONE,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        "getlisteninter"},
-       {
-        WLAN_GET_MULTIPLE_DTIM,
-        IW_PRIV_TYPE_NONE,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        "getmultipledtim"},
-       {
-        WLAN_GET_TX_RATE,
-        IW_PRIV_TYPE_NONE,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        "gettxrate"},
-       {
-        WLANGETBCNAVG,
-        IW_PRIV_TYPE_NONE,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        "getbcnavg"},
-       {
-        WLAN_GET_LINKMODE,
-        IW_PRIV_TYPE_NONE,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        "get_linkmode"},
-       {
-        WLAN_GET_RADIOMODE,
-        IW_PRIV_TYPE_NONE,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        "get_radiomode"},
-       {
-        WLAN_GET_DEBUGMODE,
-        IW_PRIV_TYPE_NONE,
-        IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
-        "get_debugmode"},
        {
         WLAN_SUBCMD_FWT_CLEANUP,
         IW_PRIV_TYPE_NONE,
@@ -1209,61 +1027,11 @@ static const struct iw_priv_args wlan_private_args[] = {
         IW_PRIV_TYPE_NONE,
         IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
         "mesh_get_ttl"},
-       {
-        WLAN_SETNONE_GETTWELVE_CHAR,
-        IW_PRIV_TYPE_NONE,
-        IW_PRIV_TYPE_CHAR | 12,
-        ""},
-       {
-        WLAN_SUBCMD_GETRXANTENNA,
-        IW_PRIV_TYPE_NONE,
-        IW_PRIV_TYPE_CHAR | 12,
-        "getrxant"},
-       {
-        WLAN_SUBCMD_GETTXANTENNA,
-        IW_PRIV_TYPE_NONE,
-        IW_PRIV_TYPE_CHAR | 12,
-        "gettxant"},
-       {
-        WLAN_GET_TSF,
-        IW_PRIV_TYPE_NONE,
-        IW_PRIV_TYPE_CHAR | 12,
-        "gettsf"},
        {
         WLAN_SETNONE_GETNONE,
         IW_PRIV_TYPE_NONE,
         IW_PRIV_TYPE_NONE,
         ""},
-       {
-        WLANDEAUTH,
-        IW_PRIV_TYPE_NONE,
-        IW_PRIV_TYPE_NONE,
-        "deauth"},
-       {
-        WLANADHOCSTOP,
-        IW_PRIV_TYPE_NONE,
-        IW_PRIV_TYPE_NONE,
-        "adhocstop"},
-       {
-        WLANRADIOON,
-        IW_PRIV_TYPE_NONE,
-        IW_PRIV_TYPE_NONE,
-        "radioon"},
-       {
-        WLANRADIOOFF,
-        IW_PRIV_TYPE_NONE,
-        IW_PRIV_TYPE_NONE,
-        "radiooff"},
-       {
-        WLANWLANIDLEON,
-        IW_PRIV_TYPE_NONE,
-        IW_PRIV_TYPE_NONE,
-        "wlanidle-on"},
-       {
-        WLANWLANIDLEOFF,
-        IW_PRIV_TYPE_NONE,
-        IW_PRIV_TYPE_NONE,
-        "wlanidle-off"},
        {
         WLAN_SUBCMD_FWT_RESET,
         IW_PRIV_TYPE_NONE,
@@ -1326,91 +1094,16 @@ static const struct iw_priv_args wlan_private_args[] = {
         IW_PRIV_TYPE_CHAR | 128,
         IW_PRIV_TYPE_CHAR | 128,
         "fwt_list_route"},
-       {
-        WLANSCAN_MODE,
-        IW_PRIV_TYPE_CHAR | 128,
-        IW_PRIV_TYPE_CHAR | 128,
-        "scanmode"},
-       {
-        WLAN_GET_ADHOC_STATUS,
-        IW_PRIV_TYPE_CHAR | 128,
-        IW_PRIV_TYPE_CHAR | 128,
-        "getadhocstatus"},
-       {
-        WLAN_SETNONE_GETWORDCHAR,
-        IW_PRIV_TYPE_NONE,
-        IW_PRIV_TYPE_CHAR | 128,
-        ""},
-       {
-        WLANSETWPAIE,
-        IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | 24,
-        IW_PRIV_TYPE_NONE,
-        "setwpaie"},
-       {
-        WLANGETLOG,
-        IW_PRIV_TYPE_NONE,
-        IW_PRIV_TYPE_CHAR | GETLOG_BUFSIZE,
-        "getlog"},
        {
         WLAN_SET_GET_SIXTEEN_INT,
         IW_PRIV_TYPE_INT | 16,
         IW_PRIV_TYPE_INT | 16,
         ""},
-       {
-        WLAN_TPCCFG,
-        IW_PRIV_TYPE_INT | 16,
-        IW_PRIV_TYPE_INT | 16,
-        "tpccfg"},
-       {
-        WLAN_POWERCFG,
-        IW_PRIV_TYPE_INT | 16,
-        IW_PRIV_TYPE_INT | 16,
-        "powercfg"},
-       {
-        WLAN_AUTO_FREQ_SET,
-        IW_PRIV_TYPE_INT | 16,
-        IW_PRIV_TYPE_INT | 16,
-        "setafc"},
-       {
-        WLAN_AUTO_FREQ_GET,
-        IW_PRIV_TYPE_INT | 16,
-        IW_PRIV_TYPE_INT | 16,
-        "getafc"},
-       {
-        WLAN_SCANPROBES,
-        IW_PRIV_TYPE_INT | 16,
-        IW_PRIV_TYPE_INT | 16,
-        "scanprobes"},
        {
         WLAN_LED_GPIO_CTRL,
         IW_PRIV_TYPE_INT | 16,
         IW_PRIV_TYPE_INT | 16,
         "ledgpio"},
-       {
-        WLAN_ADAPT_RATESET,
-        IW_PRIV_TYPE_INT | 16,
-        IW_PRIV_TYPE_INT | 16,
-        "rateadapt"},
-       {
-        WLAN_INACTIVITY_TIMEOUT,
-        IW_PRIV_TYPE_INT | 16,
-        IW_PRIV_TYPE_INT | 16,
-        "inactivityto"},
-       {
-        WLANSNR,
-        IW_PRIV_TYPE_INT | 16,
-        IW_PRIV_TYPE_INT | 16,
-        "getSNR"},
-       {
-        WLAN_GET_RATE,
-        IW_PRIV_TYPE_INT | 16,
-        IW_PRIV_TYPE_INT | 16,
-        "getrate"},
-       {
-        WLAN_GET_RXINFO,
-        IW_PRIV_TYPE_INT | 16,
-        IW_PRIV_TYPE_INT | 16,
-        "getrxinfo"},
 };
 
 static struct iw_statistics *wlan_get_wireless_stats(struct net_device *dev)
@@ -1434,7 +1127,7 @@ static struct iw_statistics *wlan_get_wireless_stats(struct net_device *dev)
 
        ENTER();
 
-       priv->wstats.status = adapter->inframode;
+       priv->wstats.status = adapter->mode;
 
        /* If we're not associated, all quality values are meaningless */
        if (adapter->connect_status != libertas_connected)
@@ -1568,13 +1261,12 @@ static int wlan_set_freq(struct net_device *dev, struct iw_request_info *info,
                if (!cfp) {
                        rc = -EINVAL;
                } else {
-                       if (adapter->inframode == wlan802_11ibss) {
+                       if (adapter->mode == IW_MODE_ADHOC) {
                                rc = changeadhocchannel(priv, channel);
                                /*  If station is WEP enabled, send the
                                 *  command to set WEP in firmware
                                 */
-                               if (adapter->secinfo.WEPstatus ==
-                                   wlan802_11WEPenabled) {
+                               if (adapter->secinfo.wep_enabled) {
                                        lbs_pr_debug(1, "set_freq: WEP enabled\n");
                                        ret = libertas_prepare_and_send_command(priv,
                                                                    cmd_802_11_set_wep,
@@ -1716,49 +1408,31 @@ static int wlan_set_mode(struct net_device *dev,
        wlan_private *priv = dev->priv;
        wlan_adapter *adapter = priv->adapter;
        struct assoc_request * assoc_req;
-       enum WLAN_802_11_NETWORK_INFRASTRUCTURE new_mode;
 
        ENTER();
 
-       switch (*uwrq) {
-       case IW_MODE_ADHOC:
-               lbs_pr_debug(1, "Wanted mode is ad-hoc: current datarate=%#x\n",
-                      adapter->datarate);
-               new_mode = wlan802_11ibss;
-               adapter->adhocchannel = DEFAULT_AD_HOC_CHANNEL;
-               break;
-
-       case IW_MODE_INFRA:
-               lbs_pr_debug(1, "Wanted mode is Infrastructure\n");
-               new_mode = wlan802_11infrastructure;
-               break;
-
-       case IW_MODE_AUTO:
-               lbs_pr_debug(1, "Wanted mode is Auto\n");
-               new_mode = wlan802_11autounknown;
-               break;
-
-       default:
-               lbs_pr_debug(1, "Wanted mode is Unknown: 0x%x\n", *uwrq);
-               return -EINVAL;
+       if (   (*uwrq != IW_MODE_ADHOC)
+           && (*uwrq != IW_MODE_INFRA)
+           && (*uwrq != IW_MODE_AUTO)) {
+               lbs_pr_debug(1, "Invalid mode: 0x%x\n", *uwrq);
+               ret = -EINVAL;
+               goto out;
        }
 
        mutex_lock(&adapter->lock);
        assoc_req = wlan_get_association_request(adapter);
        if (!assoc_req) {
                ret = -ENOMEM;
+               wlan_cancel_association_work(priv);
        } else {
-               assoc_req->mode = new_mode;
-       }
-
-       if (ret == 0) {
+               assoc_req->mode = *uwrq;
                set_bit(ASSOC_FLAG_MODE, &assoc_req->flags);
                wlan_postpone_association_work(priv);
-       } else {
-               wlan_cancel_association_work(priv);
+               lbs_pr_debug(1, "Switching to mode: 0x%x\n", *uwrq);
        }
        mutex_unlock(&adapter->lock);
 
+out:
        LEAVE();
        return ret;
 }
@@ -1789,13 +1463,13 @@ static int wlan_get_encode(struct net_device *dev,
        dwrq->flags = 0;
 
        /* Authentication method */
-       switch (adapter->secinfo.authmode) {
-       case wlan802_11authmodeopen:
+       switch (adapter->secinfo.auth_mode) {
+       case IW_AUTH_ALG_OPEN_SYSTEM:
                dwrq->flags = IW_ENCODE_OPEN;
                break;
 
-       case wlan802_11authmodeshared:
-       case wlan802_11authmodenetworkEAP:
+       case IW_AUTH_ALG_SHARED_KEY:
+       case IW_AUTH_ALG_LEAP:
                dwrq->flags = IW_ENCODE_RESTRICTED;
                break;
        default:
@@ -1803,8 +1477,9 @@ static int wlan_get_encode(struct net_device *dev,
                break;
        }
 
-       if ((adapter->secinfo.WEPstatus == wlan802_11WEPenabled)
-           || adapter->secinfo.WPAenabled || adapter->secinfo.WPA2enabled) {
+       if (   adapter->secinfo.wep_enabled
+           || adapter->secinfo.WPAenabled
+           || adapter->secinfo.WPA2enabled) {
                dwrq->flags &= ~IW_ENCODE_DISABLED;
        } else {
                dwrq->flags |= IW_ENCODE_DISABLED;
@@ -1818,8 +1493,7 @@ static int wlan_get_encode(struct net_device *dev,
        if (index < 0)
                index = adapter->wep_tx_keyidx;
 
-       if ((adapter->wep_keys[index].len) &&
-           (adapter->secinfo.WEPstatus == wlan802_11WEPenabled)) {
+       if ((adapter->wep_keys[index].len) && adapter->secinfo.wep_enabled) {
                memcpy(extra, adapter->wep_keys[index].key,
                       adapter->wep_keys[index].len);
                dwrq->length = adapter->wep_keys[index].len;
@@ -1903,7 +1577,7 @@ static int wlan_set_wep_key(struct assoc_request *assoc_req,
                assoc_req->wep_tx_keyidx = index;
        }
 
-       assoc_req->secinfo.WEPstatus = wlan802_11WEPenabled;
+       assoc_req->secinfo.wep_enabled = 1;
 
        LEAVE();
        return 0;
@@ -1932,10 +1606,10 @@ static void disable_wep(struct assoc_request *assoc_req)
        int i;
 
        /* Set Open System auth mode */
-       assoc_req->secinfo.authmode = wlan802_11authmodeopen;
+       assoc_req->secinfo.auth_mode = IW_AUTH_ALG_OPEN_SYSTEM;
 
        /* Clear WEP keys and mark WEP as disabled */
-       assoc_req->secinfo.WEPstatus = wlan802_11WEPdisabled;
+       assoc_req->secinfo.wep_enabled = 0;
        for (i = 0; i < 4; i++)
                assoc_req->wep_keys[i].len = 0;
 
@@ -1987,8 +1661,7 @@ static int wlan_set_encode(struct net_device *dev,
        /* If WEP isn't enabled, or if there is no key data but a valid
         * index, set the TX key.
         */
-       if ((assoc_req->secinfo.WEPstatus != wlan802_11WEPenabled)
-           || (dwrq->length == 0 && !is_default))
+       if (!assoc_req->secinfo.wep_enabled || (dwrq->length == 0 && !is_default))
                set_tx_key = 1;
 
        ret = wlan_set_wep_key(assoc_req, extra, dwrq->length, index, set_tx_key);
@@ -2001,9 +1674,9 @@ static int wlan_set_encode(struct net_device *dev,
                set_bit(ASSOC_FLAG_WEP_TX_KEYIDX, &assoc_req->flags);
 
        if (dwrq->flags & IW_ENCODE_RESTRICTED) {
-               assoc_req->secinfo.authmode = wlan802_11authmodeshared;
+               assoc_req->secinfo.auth_mode = IW_AUTH_ALG_SHARED_KEY;
        } else if (dwrq->flags & IW_ENCODE_OPEN) {
-               assoc_req->secinfo.authmode = wlan802_11authmodeopen;
+               assoc_req->secinfo.auth_mode = IW_AUTH_ALG_OPEN_SYSTEM;
        }
 
 out:
@@ -2056,30 +1729,31 @@ static int wlan_get_encodeext(struct net_device *dev,
 
        if (!ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY &&
            ext->alg != IW_ENCODE_ALG_WEP) {
-               if (index != 0 || adapter->inframode != wlan802_11infrastructure)
+               if (index != 0 || adapter->mode != IW_MODE_INFRA)
                        goto out;
        }
 
        dwrq->flags = index + 1;
        memset(ext, 0, sizeof(*ext));
 
-       if ((adapter->secinfo.WEPstatus == wlan802_11WEPdisabled)
-           && !adapter->secinfo.WPAenabled && !adapter->secinfo.WPA2enabled) {
+       if (   !adapter->secinfo.wep_enabled
+           && !adapter->secinfo.WPAenabled
+           && !adapter->secinfo.WPA2enabled) {
                ext->alg = IW_ENCODE_ALG_NONE;
                ext->key_len = 0;
                dwrq->flags |= IW_ENCODE_DISABLED;
        } else {
                u8 *key = NULL;
 
-               if ((adapter->secinfo.WEPstatus == wlan802_11WEPenabled)
+               if (   adapter->secinfo.wep_enabled
                    && !adapter->secinfo.WPAenabled
                    && !adapter->secinfo.WPA2enabled) {
                        ext->alg = IW_ENCODE_ALG_WEP;
                        ext->key_len = adapter->wep_keys[index].len;
                        key = &adapter->wep_keys[index].key[0];
-               } else if ((adapter->secinfo.WEPstatus == wlan802_11WEPdisabled) &&
-                          (adapter->secinfo.WPAenabled ||
-                           adapter->secinfo.WPA2enabled)) {
+               } else if (   !adapter->secinfo.wep_enabled
+                          && (adapter->secinfo.WPAenabled ||
+                              adapter->secinfo.WPA2enabled)) {
                        /* WPA */
                        ext->alg = IW_ENCODE_ALG_TKIP;
                        ext->key_len = 0;
@@ -2149,7 +1823,7 @@ static int wlan_set_encodeext(struct net_device *dev,
                /* If WEP isn't enabled, or if there is no key data but a valid
                 * index, or if the set-TX-key flag was passed, set the TX key.
                 */
-               if ((assoc_req->secinfo.WEPstatus != wlan802_11WEPenabled)
+               if (   !assoc_req->secinfo.wep_enabled
                    || (dwrq->length == 0 && !is_default)
                    || (ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY))
                        set_tx_key = 1;
@@ -2161,11 +1835,9 @@ static int wlan_set_encodeext(struct net_device *dev,
                        goto out;
 
                if (dwrq->flags & IW_ENCODE_RESTRICTED) {
-                       assoc_req->secinfo.authmode =
-                           wlan802_11authmodeshared;
+                       assoc_req->secinfo.auth_mode = IW_AUTH_ALG_SHARED_KEY;
                } else if (dwrq->flags & IW_ENCODE_OPEN) {
-                       assoc_req->secinfo.authmode =
-                           wlan802_11authmodeopen;
+                       assoc_req->secinfo.auth_mode = IW_AUTH_ALG_OPEN_SYSTEM;
                }
 
                /* Mark the various WEP bits as modified */
@@ -2350,15 +2022,13 @@ static int wlan_set_auth(struct net_device *dev,
                }
                if (dwrq->value & IW_AUTH_WPA_VERSION_WPA) {
                        assoc_req->secinfo.WPAenabled = 1;
-                       assoc_req->secinfo.WEPstatus = wlan802_11WEPdisabled;
-                       assoc_req->secinfo.authmode =
-                           wlan802_11authmodeopen;
+                       assoc_req->secinfo.wep_enabled = 0;
+                       assoc_req->secinfo.auth_mode = IW_AUTH_ALG_OPEN_SYSTEM;
                }
                if (dwrq->value & IW_AUTH_WPA_VERSION_WPA2) {
                        assoc_req->secinfo.WPA2enabled = 1;
-                       assoc_req->secinfo.WEPstatus = wlan802_11WEPdisabled;
-                       assoc_req->secinfo.authmode =
-                           wlan802_11authmodeopen;
+                       assoc_req->secinfo.wep_enabled = 0;
+                       assoc_req->secinfo.auth_mode = IW_AUTH_ALG_OPEN_SYSTEM;
                }
                updated = 1;
                break;
@@ -2376,14 +2046,11 @@ static int wlan_set_auth(struct net_device *dev,
 
        case IW_AUTH_80211_AUTH_ALG:
                if (dwrq->value & IW_AUTH_ALG_SHARED_KEY) {
-                       assoc_req->secinfo.authmode =
-                           wlan802_11authmodeshared;
+                       assoc_req->secinfo.auth_mode = IW_AUTH_ALG_SHARED_KEY;
                } else if (dwrq->value & IW_AUTH_ALG_OPEN_SYSTEM) {
-                       assoc_req->secinfo.authmode =
-                           wlan802_11authmodeopen;
+                       assoc_req->secinfo.auth_mode = IW_AUTH_ALG_OPEN_SYSTEM;
                } else if (dwrq->value & IW_AUTH_ALG_LEAP) {
-                       assoc_req->secinfo.authmode =
-                           wlan802_11authmodenetworkEAP;
+                       assoc_req->secinfo.auth_mode = IW_AUTH_ALG_LEAP;
                } else {
                        ret = -EINVAL;
                }
@@ -2396,9 +2063,8 @@ static int wlan_set_auth(struct net_device *dev,
                            !assoc_req->secinfo.WPA2enabled) {
                                assoc_req->secinfo.WPAenabled = 1;
                                assoc_req->secinfo.WPA2enabled = 1;
-                               assoc_req->secinfo.WEPstatus = wlan802_11WEPdisabled;
-                               assoc_req->secinfo.authmode =
-                                   wlan802_11authmodeopen;
+                               assoc_req->secinfo.wep_enabled = 0;
+                               assoc_req->secinfo.auth_mode = IW_AUTH_ALG_OPEN_SYSTEM;
                        }
                } else {
                        assoc_req->secinfo.WPAenabled = 0;
@@ -2455,19 +2121,7 @@ static int wlan_get_auth(struct net_device *dev,
                break;
 
        case IW_AUTH_80211_AUTH_ALG:
-               switch (adapter->secinfo.authmode) {
-               case wlan802_11authmodeshared:
-                       dwrq->value = IW_AUTH_ALG_SHARED_KEY;
-                       break;
-               case wlan802_11authmodeopen:
-                       dwrq->value = IW_AUTH_ALG_OPEN_SYSTEM;
-                       break;
-               case wlan802_11authmodenetworkEAP:
-                       dwrq->value = IW_AUTH_ALG_LEAP;
-                       break;
-               default:
-                       break;
-               }
+               dwrq->value = adapter->secinfo.auth_mode;
                break;
 
        case IW_AUTH_WPA_ENABLED:
index 39f367c38d901fe38ba5ec3bb965aa5d7a07a7a2..15cfaaf0797ff7b43faee11f376fe45c9e79657d 100644 (file)
 /** PRIVATE CMD ID */
 #define        WLANIOCTL                       SIOCIWFIRSTPRIV
 
-#define WLANSETWPAIE                   (WLANIOCTL + 0)
-
-#define WLAN_SETINT_GETINT             (WLANIOCTL + 7)
-#define WLANNF                                 1
-#define WLANRSSI                               2
-#define WLANENABLE11D                          5
-#define WLANADHOCGRATE                         6
-#define WLAN_SUBCMD_SET_PRESCAN                        11
-
 #define WLAN_SETNONE_GETNONE           (WLANIOCTL + 8)
-#define WLANDEAUTH                             1
-#define WLANRADIOON                            2
-#define WLANRADIOOFF                           3
-#define WLANREMOVEADHOCAES                     4
-#define WLANADHOCSTOP                          5
-#define WLANCIPHERTEST                         6
-#define WLANCRYPTOTEST                         7
-
-#define WLANWLANIDLEON                         10
-#define WLANWLANIDLEOFF                                11
 #define WLAN_SUBCMD_BT_RESET                   13
 #define WLAN_SUBCMD_FWT_RESET                  14
 
-#define WLANGETLOG                     (WLANIOCTL + 9)
-#define GETLOG_BUFSIZE  300
-
-#define WLANSCAN_TYPE                  (WLANIOCTL + 11)
-
 #define WLAN_SETNONE_GETONEINT         (WLANIOCTL + 15)
 #define WLANGETREGION                          1
-#define WLAN_GET_LISTEN_INTERVAL               2
-#define WLAN_GET_MULTIPLE_DTIM                 3
-#define WLAN_GET_TX_RATE                       4
-#define        WLANGETBCNAVG                           5
 
-#define WLAN_GET_LINKMODE                      6
-#define WLAN_GET_RADIOMODE                     7
-#define WLAN_GET_DEBUGMODE                     8
 #define WLAN_SUBCMD_FWT_CLEANUP                        15
 #define WLAN_SUBCMD_FWT_TIME                   16
 #define WLAN_SUBCMD_MESH_GET_TTL               17
 
-#define WLANREGCFRDWR                  (WLANIOCTL + 18)
-
-#define WLAN_SETNONE_GETTWELVE_CHAR (WLANIOCTL + 19)
-#define WLAN_SUBCMD_GETRXANTENNA    1
-#define WLAN_SUBCMD_GETTXANTENNA    2
-#define WLAN_GET_TSF                3
-
-#define WLAN_SETNONE_GETWORDCHAR       (WLANIOCTL + 21)
-#define WLANGETADHOCAES                                1
-
-#define WLAN_SETONEINT_GETONEINT       (WLANIOCTL + 23)
-#define WLAN_BEACON_INTERVAL                   1
-#define        WLAN_LISTENINTRVL                       4
-
-#define WLAN_TXCONTROL                         6
-#define WLAN_NULLPKTINTERVAL                   7
-
 #define WLAN_SETONEINT_GETNONE         (WLANIOCTL + 24)
-#define WLAN_SUBCMD_SETRXANTENNA               1
-#define WLAN_SUBCMD_SETTXANTENNA               2
-#define WLANSETAUTHALG                         5
-#define WLANSET8021XAUTHALG                    6
-#define WLANSETENCRYPTIONMODE                  7
 #define WLANSETREGION                          8
-#define WLAN_SET_LISTEN_INTERVAL               9
-
-#define WLAN_SET_MULTIPLE_DTIM                 10
-#define WLAN_SET_ATIM_WINDOW                   11
-#define WLANSETBCNAVG                          13
-#define WLANSETDATAAVG                         14
-#define WLAN_SET_LINKMODE                      15
-#define WLAN_SET_RADIOMODE                     16
-#define WLAN_SET_DEBUGMODE                     17
 #define WLAN_SUBCMD_MESH_SET_TTL               18
 
 #define WLAN_SET128CHAR_GET128CHAR     (WLANIOCTL + 25)
-#define WLANSCAN_MODE                          6
-
-#define WLAN_GET_ADHOC_STATUS                  9
-
 #define WLAN_SUBCMD_BT_ADD                     18
 #define WLAN_SUBCMD_BT_DEL                     19
 #define WLAN_SUBCMD_BT_LIST                    20
 #define WLAN_SUBCMD_FWT_LIST_ROUTE                     26
 
 #define WLAN_SET_GET_SIXTEEN_INT       (WLANIOCTL + 29)
-#define WLAN_TPCCFG                             1
-#define WLAN_POWERCFG                           2
-
-#define WLAN_AUTO_FREQ_SET                     3
-#define WLAN_AUTO_FREQ_GET                     4
 #define WLAN_LED_GPIO_CTRL                     5
-#define WLAN_SCANPROBES                        6
-#define        WLAN_ADAPT_RATESET                      8
-#define        WLAN_INACTIVITY_TIMEOUT                 9
-#define WLANSNR                                        10
-#define WLAN_GET_RATE                          11
-#define        WLAN_GET_RXINFO                         12
-
-#define WLANCMD52RDWR                  (WLANIOCTL + 30)
-#define WLANCMD53RDWR                  (WLANIOCTL + 31)
-#define CMD53BUFLEN                            32
 
-#define        REG_MAC                                 0x19
-#define        REG_BBP                                 0x1a
-#define        REG_RF                                  0x1b
-#define        REG_EEPROM                              0x59
 #define WLAN_LINKMODE_802_3                    0
 #define WLAN_LINKMODE_802_11                   2
 #define WLAN_RADIOMODE_NONE                            0