提交 eedb9f09 编写于 作者: J Jeff Garzik
=========================== Intel(R) PRO/Wireless 2100 Driver for Linux in support of:
Intel(R) PRO/Wireless 2100 Network Connection Driver for Linux
Intel(R) PRO/Wireless 2100 Network Connection
Copyright (C) 2003-2005, Intel Corporation
README.ipw2100 README.ipw2100
March 14, 2005 Version: 1.1.3
Date : October 17, 2005
===========================
Index Index
--------------------------- -----------------------------------------------
0. Introduction 0. IMPORTANT INFORMATION BEFORE USING THIS DRIVER
1. Release 1.1.0 Current Features 1. Introduction
2. Command Line Parameters 2. Release 1.1.3 Current Features
3. Sysfs Helper Files 3. Command Line Parameters
4. Radio Kill Switch 4. Sysfs Helper Files
5. Dynamic Firmware 5. Radio Kill Switch
6. Power Management 6. Dynamic Firmware
7. Support 7. Power Management
8. License 8. Support
9. License
===========================
0. Introduction 0. IMPORTANT INFORMATION BEFORE USING THIS DRIVER
------------ ----- ----- ---- --- -- - -----------------------------------------------
Important Notice FOR ALL USERS OR DISTRIBUTORS!!!!
Intel wireless LAN adapters are engineered, manufactured, tested, and
quality checked to ensure that they meet all necessary local and
governmental regulatory agency requirements for the regions that they
are designated and/or marked to ship into. Since wireless LANs are
generally unlicensed devices that share spectrum with radars,
satellites, and other licensed and unlicensed devices, it is sometimes
necessary to dynamically detect, avoid, and limit usage to avoid
interference with these devices. In many instances Intel is required to
provide test data to prove regional and local compliance to regional and
governmental regulations before certification or approval to use the
product is granted. Intel's wireless LAN's EEPROM, firmware, and
software driver are designed to carefully control parameters that affect
radio operation and to ensure electromagnetic compliance (EMC). These
parameters include, without limitation, RF power, spectrum usage,
channel scanning, and human exposure.
For these reasons Intel cannot permit any manipulation by third parties
of the software provided in binary format with the wireless WLAN
adapters (e.g., the EEPROM and firmware). Furthermore, if you use any
patches, utilities, or code with the Intel wireless LAN adapters that
have been manipulated by an unauthorized party (i.e., patches,
utilities, or code (including open source code modifications) which have
not been validated by Intel), (i) you will be solely responsible for
ensuring the regulatory compliance of the products, (ii) Intel will bear
no liability, under any theory of liability for any issues associated
with the modified products, including without limitation, claims under
the warranty and/or issues arising from regulatory non-compliance, and
(iii) Intel will not provide or be required to assist in providing
support to any third parties for such modified products.
Note: Many regulatory agencies consider Wireless LAN adapters to be
modules, and accordingly, condition system-level regulatory approval
upon receipt and review of test data documenting that the antennas and
system configuration do not cause the EMC and radio operation to be
non-compliant.
The drivers available for download from SourceForge are provided as a
part of a development project. Conformance to local regulatory
requirements is the responsibility of the individual developer. As
such, if you are interested in deploying or shipping a driver as part of
solution intended to be used for purposes other than development, please
obtain a tested driver from Intel Customer Support at:
http://support.intel.com/support/notebook/sb/CS-006408.htm
1. Introduction
-----------------------------------------------
This document provides a brief overview of the features supported by the This document provides a brief overview of the features supported by the
IPW2100 driver project. The main project website, where the latest IPW2100 driver project. The main project website, where the latest
...@@ -34,9 +89,8 @@ potential fixes and patches, as well as links to the development mailing list ...@@ -34,9 +89,8 @@ potential fixes and patches, as well as links to the development mailing list
for the driver project. for the driver project.
=========================== 2. Release 1.1.3 Current Supported Features
1. Release 1.1.0 Current Supported Features -----------------------------------------------
---------------------------
- Managed (BSS) and Ad-Hoc (IBSS) - Managed (BSS) and Ad-Hoc (IBSS)
- WEP (shared key and open) - WEP (shared key and open)
- Wireless Tools support - Wireless Tools support
...@@ -51,9 +105,8 @@ on the amount of validation and interoperability testing that has been ...@@ -51,9 +105,8 @@ on the amount of validation and interoperability testing that has been
performed on a given feature. performed on a given feature.
=========================== 3. Command Line Parameters
2. Command Line Parameters -----------------------------------------------
---------------------------
If the driver is built as a module, the following optional parameters are used If the driver is built as a module, the following optional parameters are used
by entering them on the command line with the modprobe command using this by entering them on the command line with the modprobe command using this
...@@ -75,9 +128,9 @@ associate boolean associate=0 /* Do NOT auto associate */ ...@@ -75,9 +128,9 @@ associate boolean associate=0 /* Do NOT auto associate */
disable boolean disable=1 /* Do not power the HW */ disable boolean disable=1 /* Do not power the HW */
=========================== 4. Sysfs Helper Files
3. Sysfs Helper Files
--------------------------- ---------------------------
-----------------------------------------------
There are several ways to control the behavior of the driver. Many of the There are several ways to control the behavior of the driver. Many of the
general capabilities are exposed through the Wireless Tools (iwconfig). There general capabilities are exposed through the Wireless Tools (iwconfig). There
...@@ -120,9 +173,8 @@ For the device level files, see /sys/bus/pci/drivers/ipw2100: ...@@ -120,9 +173,8 @@ For the device level files, see /sys/bus/pci/drivers/ipw2100:
based RF kill from ON -> OFF -> ON, the radio will NOT come back on based RF kill from ON -> OFF -> ON, the radio will NOT come back on
=========================== 5. Radio Kill Switch
4. Radio Kill Switch -----------------------------------------------
---------------------------
Most laptops provide the ability for the user to physically disable the radio. Most laptops provide the ability for the user to physically disable the radio.
Some vendors have implemented this as a physical switch that requires no Some vendors have implemented this as a physical switch that requires no
software to turn the radio off and on. On other laptops, however, the switch software to turn the radio off and on. On other laptops, however, the switch
...@@ -134,9 +186,8 @@ See the Sysfs helper file 'rf_kill' for determining the state of the RF switch ...@@ -134,9 +186,8 @@ See the Sysfs helper file 'rf_kill' for determining the state of the RF switch
on your system. on your system.
=========================== 6. Dynamic Firmware
5. Dynamic Firmware -----------------------------------------------
---------------------------
As the firmware is licensed under a restricted use license, it can not be As the firmware is licensed under a restricted use license, it can not be
included within the kernel sources. To enable the IPW2100 you will need a included within the kernel sources. To enable the IPW2100 you will need a
firmware image to load into the wireless NIC's processors. firmware image to load into the wireless NIC's processors.
...@@ -146,9 +197,8 @@ You can obtain these images from <http://ipw2100.sf.net/firmware.php>. ...@@ -146,9 +197,8 @@ You can obtain these images from <http://ipw2100.sf.net/firmware.php>.
See INSTALL for instructions on installing the firmware. See INSTALL for instructions on installing the firmware.
=========================== 7. Power Management
6. Power Management -----------------------------------------------
---------------------------
The IPW2100 supports the configuration of the Power Save Protocol The IPW2100 supports the configuration of the Power Save Protocol
through a private wireless extension interface. The IPW2100 supports through a private wireless extension interface. The IPW2100 supports
the following different modes: the following different modes:
...@@ -200,9 +250,8 @@ xxxx/yyyy will be replaced with 'off' -- the level reported will be the active ...@@ -200,9 +250,8 @@ xxxx/yyyy will be replaced with 'off' -- the level reported will be the active
level if `iwconfig eth1 power on` is invoked. level if `iwconfig eth1 power on` is invoked.
=========================== 8. Support
7. Support -----------------------------------------------
---------------------------
For general development information and support, For general development information and support,
go to: go to:
...@@ -218,9 +267,8 @@ For installation support on the ipw2100 1.1.0 driver on Linux kernels ...@@ -218,9 +267,8 @@ For installation support on the ipw2100 1.1.0 driver on Linux kernels
http://supportmail.intel.com http://supportmail.intel.com
=========================== 9. License
8. License -----------------------------------------------
---------------------------
Copyright(c) 2003 - 2005 Intel Corporation. All rights reserved. Copyright(c) 2003 - 2005 Intel Corporation. All rights reserved.
......
Intel(R) PRO/Wireless 2915ABG Driver for Linux in support of: Intel(R) PRO/Wireless 2915ABG Driver for Linux in support of:
Intel(R) PRO/Wireless 2200BG Network Connection Intel(R) PRO/Wireless 2200BG Network Connection
Intel(R) PRO/Wireless 2915ABG Network Connection Intel(R) PRO/Wireless 2915ABG Network Connection
Note: The Intel(R) PRO/Wireless 2915ABG Driver for Linux and Intel(R) Note: The Intel(R) PRO/Wireless 2915ABG Driver for Linux and Intel(R)
PRO/Wireless 2200BG Driver for Linux is a unified driver that works on PRO/Wireless 2200BG Driver for Linux is a unified driver that works on
both hardware adapters listed above. In this document the Intel(R) both hardware adapters listed above. In this document the Intel(R)
PRO/Wireless 2915ABG Driver for Linux will be used to reference the PRO/Wireless 2915ABG Driver for Linux will be used to reference the
unified driver. unified driver.
Copyright (C) 2004-2005, Intel Corporation Copyright (C) 2004-2005, Intel Corporation
README.ipw2200 README.ipw2200
Version: 1.0.0 Version: 1.0.8
Date : January 31, 2005 Date : October 20, 2005
Index Index
----------------------------------------------- -----------------------------------------------
0. IMPORTANT INFORMATION BEFORE USING THIS DRIVER
1. Introduction 1. Introduction
1.1. Overview of features 1.1. Overview of features
1.2. Module parameters 1.2. Module parameters
1.3. Wireless Extension Private Methods 1.3. Wireless Extension Private Methods
1.4. Sysfs Helper Files 1.4. Sysfs Helper Files
2. About the Version Numbers 2. Ad-Hoc Networking
3. Support 3. Interacting with Wireless Tools
4. License 3.1. iwconfig mode
4. About the Version Numbers
5. Firmware installation
6. Support
7. License
0. IMPORTANT INFORMATION BEFORE USING THIS DRIVER
-----------------------------------------------
Important Notice FOR ALL USERS OR DISTRIBUTORS!!!!
Intel wireless LAN adapters are engineered, manufactured, tested, and
quality checked to ensure that they meet all necessary local and
governmental regulatory agency requirements for the regions that they
are designated and/or marked to ship into. Since wireless LANs are
generally unlicensed devices that share spectrum with radars,
satellites, and other licensed and unlicensed devices, it is sometimes
necessary to dynamically detect, avoid, and limit usage to avoid
interference with these devices. In many instances Intel is required to
provide test data to prove regional and local compliance to regional and
governmental regulations before certification or approval to use the
product is granted. Intel's wireless LAN's EEPROM, firmware, and
software driver are designed to carefully control parameters that affect
radio operation and to ensure electromagnetic compliance (EMC). These
parameters include, without limitation, RF power, spectrum usage,
channel scanning, and human exposure.
For these reasons Intel cannot permit any manipulation by third parties
of the software provided in binary format with the wireless WLAN
adapters (e.g., the EEPROM and firmware). Furthermore, if you use any
patches, utilities, or code with the Intel wireless LAN adapters that
have been manipulated by an unauthorized party (i.e., patches,
utilities, or code (including open source code modifications) which have
not been validated by Intel), (i) you will be solely responsible for
ensuring the regulatory compliance of the products, (ii) Intel will bear
no liability, under any theory of liability for any issues associated
with the modified products, including without limitation, claims under
the warranty and/or issues arising from regulatory non-compliance, and
(iii) Intel will not provide or be required to assist in providing
support to any third parties for such modified products.
Note: Many regulatory agencies consider Wireless LAN adapters to be
modules, and accordingly, condition system-level regulatory approval
upon receipt and review of test data documenting that the antennas and
system configuration do not cause the EMC and radio operation to be
non-compliant.
The drivers available for download from SourceForge are provided as a
part of a development project. Conformance to local regulatory
requirements is the responsibility of the individual developer. As
such, if you are interested in deploying or shipping a driver as part of
solution intended to be used for purposes other than development, please
obtain a tested driver from Intel Customer Support at:
http://support.intel.com/support/notebook/sb/CS-006408.htm
1. Introduction 1. Introduction
...@@ -45,7 +101,7 @@ file. ...@@ -45,7 +101,7 @@ file.
1.1. Overview of Features 1.1. Overview of Features
----------------------------------------------- -----------------------------------------------
The current release (1.0.0) supports the following features: The current release (1.0.8) supports the following features:
+ BSS mode (Infrastructure, Managed) + BSS mode (Infrastructure, Managed)
+ IBSS mode (Ad-Hoc) + IBSS mode (Ad-Hoc)
...@@ -56,17 +112,27 @@ The current release (1.0.0) supports the following features: ...@@ -56,17 +112,27 @@ The current release (1.0.0) supports the following features:
+ Full A rate support (2915 only) + Full A rate support (2915 only)
+ Transmit power control + Transmit power control
+ S state support (ACPI suspend/resume) + S state support (ACPI suspend/resume)
The following features are currently enabled, but not officially
supported:
+ WPA
+ long/short preamble support + long/short preamble support
+ Monitor mode (aka RFMon)
The distinction between officially supported and enabled is a reflection
on the amount of validation and interoperability testing that has been
performed on a given feature.
1.2. Command Line Parameters 1.2. Command Line Parameters
----------------------------------------------- -----------------------------------------------
Like many modules used in the Linux kernel, the Intel(R) PRO/Wireless Like many modules used in the Linux kernel, the Intel(R) PRO/Wireless
2915ABG Driver for Linux allows certain configuration options to be 2915ABG Driver for Linux allows configuration options to be provided
provided as module parameters. The most common way to specify a module as module parameters. The most common way to specify a module parameter
parameter is via the command line. is via the command line.
The general form is: The general form is:
...@@ -96,14 +162,18 @@ Where the supported parameter are: ...@@ -96,14 +162,18 @@ Where the supported parameter are:
debug debug
If using a debug build, this is used to control the amount of debug If using a debug build, this is used to control the amount of debug
info is logged. See the 'dval' and 'load' script for more info on info is logged. See the 'dvals' and 'load' script for more info on
how to use this (the dval and load scripts are provided as part how to use this (the dvals and load scripts are provided as part
of the ipw2200 development snapshot releases available from the of the ipw2200 development snapshot releases available from the
SourceForge project at http://ipw2200.sf.net) SourceForge project at http://ipw2200.sf.net)
led
Can be used to turn on experimental LED code.
0 = Off, 1 = On. Default is 0.
mode mode
Can be used to set the default mode of the adapter. Can be used to set the default mode of the adapter.
0 = Managed, 1 = Ad-Hoc 0 = Managed, 1 = Ad-Hoc, 2 = Monitor
1.3. Wireless Extension Private Methods 1.3. Wireless Extension Private Methods
...@@ -164,8 +234,8 @@ The supported private methods are: ...@@ -164,8 +234,8 @@ The supported private methods are:
----------------------------------------------- -----------------------------------------------
The Linux kernel provides a pseudo file system that can be used to The Linux kernel provides a pseudo file system that can be used to
access various components of the operating system. The Intel(R) access various components of the operating system. The Intel(R)
PRO/Wireless 2915ABG Driver for Linux exposes several configuration PRO/Wireless 2915ABG Driver for Linux exposes several configuration
parameters through this mechanism. parameters through this mechanism.
An entry in the sysfs can support reading and/or writing. You can An entry in the sysfs can support reading and/or writing. You can
...@@ -184,13 +254,13 @@ You can set the debug level via: ...@@ -184,13 +254,13 @@ You can set the debug level via:
Where $VALUE would be a number in the case of this sysfs entry. The Where $VALUE would be a number in the case of this sysfs entry. The
input to sysfs files does not have to be a number. For example, the input to sysfs files does not have to be a number. For example, the
firmware loader used by hotplug utilizes sysfs entries for transferring firmware loader used by hotplug utilizes sysfs entries for transfering
the firmware image from user space into the driver. the firmware image from user space into the driver.
The Intel(R) PRO/Wireless 2915ABG Driver for Linux exposes sysfs entries The Intel(R) PRO/Wireless 2915ABG Driver for Linux exposes sysfs entries
at two levels -- driver level, which apply to all instances of the at two levels -- driver level, which apply to all instances of the driver
driver (in the event that there are more than one device installed) and (in the event that there are more than one device installed) and device
device level, which applies only to the single specific instance. level, which applies only to the single specific instance.
1.4.1 Driver Level Sysfs Helper Files 1.4.1 Driver Level Sysfs Helper Files
...@@ -203,6 +273,7 @@ For the driver level files, look in /sys/bus/pci/drivers/ipw2200/ ...@@ -203,6 +273,7 @@ For the driver level files, look in /sys/bus/pci/drivers/ipw2200/
This controls the same global as the 'debug' module parameter This controls the same global as the 'debug' module parameter
1.4.2 Device Level Sysfs Helper Files 1.4.2 Device Level Sysfs Helper Files
----------------------------------------------- -----------------------------------------------
...@@ -213,7 +284,7 @@ For the device level files, look in ...@@ -213,7 +284,7 @@ For the device level files, look in
For example: For example:
/sys/bus/pci/drivers/ipw2200/0000:02:01.0 /sys/bus/pci/drivers/ipw2200/0000:02:01.0
For the device level files, see /sys/bus/pci/[drivers/ipw2200: For the device level files, see /sys/bus/pci/drivers/ipw2200:
rf_kill rf_kill
read - read -
...@@ -231,8 +302,59 @@ For the device level files, see /sys/bus/pci/[drivers/ipw2200: ...@@ -231,8 +302,59 @@ For the device level files, see /sys/bus/pci/[drivers/ipw2200:
ucode ucode
read-only access to the ucode version number read-only access to the ucode version number
led
read -
0 = LED code disabled
1 = LED code enabled
write -
0 = Disable LED code
1 = Enable LED code
NOTE: The LED code has been reported to hang some systems when
running ifconfig and is therefore disabled by default.
2. Ad-Hoc Networking
-----------------------------------------------
When using a device in an Ad-Hoc network, it is useful to understand the
sequence and requirements for the driver to be able to create, join, or
merge networks.
The following attempts to provide enough information so that you can
have a consistent experience while using the driver as a member of an
Ad-Hoc network.
2.1. Joining an Ad-Hoc Network
-----------------------------------------------
The easiest way to get onto an Ad-Hoc network is to join one that
already exists.
2. About the Version Numbers 2.2. Creating an Ad-Hoc Network
-----------------------------------------------
An Ad-Hoc networks is created using the syntax of the Wireless tool.
For Example:
iwconfig eth1 mode ad-hoc essid testing channel 2
2.3. Merging Ad-Hoc Networks
-----------------------------------------------
3. Interaction with Wireless Tools
-----------------------------------------------
3.1 iwconfig mode
-----------------------------------------------
When configuring the mode of the adapter, all run-time configured parameters
are reset to the value used when the module was loaded. This includes
channels, rates, ESSID, etc.
4. About the Version Numbers
----------------------------------------------- -----------------------------------------------
Due to the nature of open source development projects, there are Due to the nature of open source development projects, there are
...@@ -259,12 +381,23 @@ available as quickly as possible, unknown anomalies should be expected. ...@@ -259,12 +381,23 @@ available as quickly as possible, unknown anomalies should be expected.
The major version number will be incremented when significant changes The major version number will be incremented when significant changes
are made to the driver. Currently, there are no major changes planned. are made to the driver. Currently, there are no major changes planned.
5. Firmware installation
----------------------------------------------
The driver requires a firmware image, download it and extract the
files under /lib/firmware (or wherever your hotplug's firmware.agent
will look for firmware files)
The firmware can be downloaded from the following URL:
3. Support http://ipw2200.sf.net/
6. Support
----------------------------------------------- -----------------------------------------------
For installation support of the 1.0.0 version, you can contact For direct support of the 1.0.0 version, you can contact
http://supportmail.intel.com, or you can use the open source project http://supportmail.intel.com, or you can use the open source project
support. support.
For general information and support, go to: For general information and support, go to:
...@@ -272,7 +405,7 @@ For general information and support, go to: ...@@ -272,7 +405,7 @@ For general information and support, go to:
http://ipw2200.sf.net/ http://ipw2200.sf.net/
4. License 7. License
----------------------------------------------- -----------------------------------------------
Copyright(c) 2003 - 2005 Intel Corporation. All rights reserved. Copyright(c) 2003 - 2005 Intel Corporation. All rights reserved.
...@@ -297,4 +430,3 @@ For general information and support, go to: ...@@ -297,4 +430,3 @@ For general information and support, go to:
James P. Ketrenos <ipw2100-admin@linux.intel.com> James P. Ketrenos <ipw2100-admin@linux.intel.com>
Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
...@@ -1330,6 +1330,24 @@ M: john.ronciak@intel.com ...@@ -1330,6 +1330,24 @@ M: john.ronciak@intel.com
W: http://sourceforge.net/projects/e1000/ W: http://sourceforge.net/projects/e1000/
S: Supported S: Supported
INTEL PRO/WIRELESS 2100 NETWORK CONNECTION SUPPORT
P: Yi Zhu
M: yi.zhu@intel.com
P: James Ketrenos
M: jketreno@linux.intel.com
L: http://lists.sourceforge.net/mailman/listinfo/ipw2100-devel
W: http://ipw2100.sourceforge.net
S: Supported
INTEL PRO/WIRELESS 2915ABG NETWORK CONNECTION SUPPORT
P: Yi Zhu
M: yi.zhu@intel.com
P: James Ketrenos
M: jketreno@linux.intel.com
L: http://lists.sourceforge.net/mailman/listinfo/ipw2100-devel
W: http://ipw2200.sourceforge.net
S: Supported
IOC3 DRIVER IOC3 DRIVER
P: Ralf Baechle P: Ralf Baechle
M: ralf@linux-mips.org M: ralf@linux-mips.org
......
此差异已折叠。
/****************************************************************************** /******************************************************************************
Copyright(c) 2003 - 2005 Intel Corporation. All rights reserved. Copyright(c) 2003 - 2004 Intel Corporation. All rights reserved.
This program is free software; you can redistribute it and/or modify it This program is free software; you can redistribute it and/or modify it
under the terms of version 2 of the GNU General Public License as under the terms of version 2 of the GNU General Public License as
...@@ -93,7 +93,6 @@ struct ipw2100_rx_packet; ...@@ -93,7 +93,6 @@ struct ipw2100_rx_packet;
#define IPW_DL_IOCTL (1<<14) #define IPW_DL_IOCTL (1<<14)
#define IPW_DL_RF_KILL (1<<17) #define IPW_DL_RF_KILL (1<<17)
#define IPW_DL_MANAGE (1<<15) #define IPW_DL_MANAGE (1<<15)
#define IPW_DL_FW (1<<16) #define IPW_DL_FW (1<<16)
...@@ -156,7 +155,9 @@ extern const char *band_str[]; ...@@ -156,7 +155,9 @@ extern const char *band_str[];
struct bd_status { struct bd_status {
union { union {
struct { u8 nlf:1, txType:2, intEnabled:1, reserved:4;} fields; struct {
u8 nlf:1, txType:2, intEnabled:1, reserved:4;
} fields;
u8 field; u8 field;
} info; } info;
} __attribute__ ((packed)); } __attribute__ ((packed));
...@@ -165,7 +166,7 @@ struct ipw2100_bd { ...@@ -165,7 +166,7 @@ struct ipw2100_bd {
u32 host_addr; u32 host_addr;
u32 buf_length; u32 buf_length;
struct bd_status status; struct bd_status status;
/* number of fragments for frame (should be set only for /* number of fragments for frame (should be set only for
* 1st TBD) */ * 1st TBD) */
u8 num_fragments; u8 num_fragments;
u8 reserved[6]; u8 reserved[6];
...@@ -293,10 +294,10 @@ struct ipw2100_cmd_header { ...@@ -293,10 +294,10 @@ struct ipw2100_cmd_header {
struct ipw2100_data_header { struct ipw2100_data_header {
u32 host_command_reg; u32 host_command_reg;
u32 host_command_reg1; u32 host_command_reg1;
u8 encrypted; // BOOLEAN in win! TRUE if frame is enc by driver u8 encrypted; // BOOLEAN in win! TRUE if frame is enc by driver
u8 needs_encryption; // BOOLEAN in win! TRUE if frma need to be enc in NIC u8 needs_encryption; // BOOLEAN in win! TRUE if frma need to be enc in NIC
u8 wep_index; // 0 no key, 1-4 key index, 0xff immediate key u8 wep_index; // 0 no key, 1-4 key index, 0xff immediate key
u8 key_size; // 0 no imm key, 0x5 64bit encr, 0xd 128bit encr, 0x10 128bit encr and 128bit IV u8 key_size; // 0 no imm key, 0x5 64bit encr, 0xd 128bit encr, 0x10 128bit encr and 128bit IV
u8 key[16]; u8 key[16];
u8 reserved[10]; // f/w reserved u8 reserved[10]; // f/w reserved
u8 src_addr[ETH_ALEN]; u8 src_addr[ETH_ALEN];
...@@ -306,14 +307,13 @@ struct ipw2100_data_header { ...@@ -306,14 +307,13 @@ struct ipw2100_data_header {
/* Host command data structure */ /* Host command data structure */
struct host_command { struct host_command {
u32 host_command; // COMMAND ID u32 host_command; // COMMAND ID
u32 host_command1; // COMMAND ID u32 host_command1; // COMMAND ID
u32 host_command_sequence; // UNIQUE COMMAND NUMBER (ID) u32 host_command_sequence; // UNIQUE COMMAND NUMBER (ID)
u32 host_command_length; // LENGTH u32 host_command_length; // LENGTH
u32 host_command_parameters[HOST_COMMAND_PARAMS_REG_LEN]; // COMMAND PARAMETERS u32 host_command_parameters[HOST_COMMAND_PARAMS_REG_LEN]; // COMMAND PARAMETERS
} __attribute__ ((packed)); } __attribute__ ((packed));
typedef enum { typedef enum {
POWER_ON_RESET, POWER_ON_RESET,
EXIT_POWER_DOWN_RESET, EXIT_POWER_DOWN_RESET,
...@@ -328,17 +328,16 @@ enum { ...@@ -328,17 +328,16 @@ enum {
RX RX
}; };
struct ipw2100_tx_packet { struct ipw2100_tx_packet {
int type; int type;
int index; int index;
union { union {
struct { /* COMMAND */ struct { /* COMMAND */
struct ipw2100_cmd_header* cmd; struct ipw2100_cmd_header *cmd;
dma_addr_t cmd_phys; dma_addr_t cmd_phys;
} c_struct; } c_struct;
struct { /* DATA */ struct { /* DATA */
struct ipw2100_data_header* data; struct ipw2100_data_header *data;
dma_addr_t data_phys; dma_addr_t data_phys;
struct ieee80211_txb *txb; struct ieee80211_txb *txb;
} d_struct; } d_struct;
...@@ -348,7 +347,6 @@ struct ipw2100_tx_packet { ...@@ -348,7 +347,6 @@ struct ipw2100_tx_packet {
struct list_head list; struct list_head list;
}; };
struct ipw2100_rx_packet { struct ipw2100_rx_packet {
struct ipw2100_rx *rxp; struct ipw2100_rx *rxp;
dma_addr_t dma_addr; dma_addr_t dma_addr;
...@@ -432,13 +430,13 @@ enum { ...@@ -432,13 +430,13 @@ enum {
}; };
#define STATUS_POWERED (1<<0) #define STATUS_POWERED (1<<0)
#define STATUS_CMD_ACTIVE (1<<1) /**< host command in progress */ #define STATUS_CMD_ACTIVE (1<<1) /**< host command in progress */
#define STATUS_RUNNING (1<<2) /* Card initialized, but not enabled */ #define STATUS_RUNNING (1<<2) /* Card initialized, but not enabled */
#define STATUS_ENABLED (1<<3) /* Card enabled -- can scan,Tx,Rx */ #define STATUS_ENABLED (1<<3) /* Card enabled -- can scan,Tx,Rx */
#define STATUS_STOPPING (1<<4) /* Card is in shutdown phase */ #define STATUS_STOPPING (1<<4) /* Card is in shutdown phase */
#define STATUS_INITIALIZED (1<<5) /* Card is ready for external calls */ #define STATUS_INITIALIZED (1<<5) /* Card is ready for external calls */
#define STATUS_ASSOCIATING (1<<9) /* Associated, but no BSSID yet */ #define STATUS_ASSOCIATING (1<<9) /* Associated, but no BSSID yet */
#define STATUS_ASSOCIATED (1<<10) /* Associated and BSSID valid */ #define STATUS_ASSOCIATED (1<<10) /* Associated and BSSID valid */
#define STATUS_INT_ENABLED (1<<11) #define STATUS_INT_ENABLED (1<<11)
#define STATUS_RF_KILL_HW (1<<12) #define STATUS_RF_KILL_HW (1<<12)
#define STATUS_RF_KILL_SW (1<<13) #define STATUS_RF_KILL_SW (1<<13)
...@@ -451,9 +449,7 @@ enum { ...@@ -451,9 +449,7 @@ enum {
#define STATUS_SCAN_COMPLETE (1<<26) #define STATUS_SCAN_COMPLETE (1<<26)
#define STATUS_WX_EVENT_PENDING (1<<27) #define STATUS_WX_EVENT_PENDING (1<<27)
#define STATUS_RESET_PENDING (1<<29) #define STATUS_RESET_PENDING (1<<29)
#define STATUS_SECURITY_UPDATED (1<<30) /* Security sync needed */ #define STATUS_SECURITY_UPDATED (1<<30) /* Security sync needed */
/* Internal NIC states */ /* Internal NIC states */
#define IPW_STATE_INITIALIZED (1<<0) #define IPW_STATE_INITIALIZED (1<<0)
...@@ -469,11 +465,9 @@ enum { ...@@ -469,11 +465,9 @@ enum {
#define IPW_STATE_POWER_DOWN (1<<10) #define IPW_STATE_POWER_DOWN (1<<10)
#define IPW_STATE_SCANNING (1<<11) #define IPW_STATE_SCANNING (1<<11)
#define CFG_STATIC_CHANNEL (1<<0) /* Restrict assoc. to single channel */
#define CFG_STATIC_ESSID (1<<1) /* Restrict assoc. to single SSID */
#define CFG_STATIC_CHANNEL (1<<0) /* Restrict assoc. to single channel */ #define CFG_STATIC_BSSID (1<<2) /* Restrict assoc. to single BSSID */
#define CFG_STATIC_ESSID (1<<1) /* Restrict assoc. to single SSID */
#define CFG_STATIC_BSSID (1<<2) /* Restrict assoc. to single BSSID */
#define CFG_CUSTOM_MAC (1<<3) #define CFG_CUSTOM_MAC (1<<3)
#define CFG_LONG_PREAMBLE (1<<4) #define CFG_LONG_PREAMBLE (1<<4)
#define CFG_ASSOCIATE (1<<6) #define CFG_ASSOCIATE (1<<6)
...@@ -481,14 +475,17 @@ enum { ...@@ -481,14 +475,17 @@ enum {
#define CFG_ADHOC_CREATE (1<<8) #define CFG_ADHOC_CREATE (1<<8)
#define CFG_C3_DISABLED (1<<9) #define CFG_C3_DISABLED (1<<9)
#define CFG_PASSIVE_SCAN (1<<10) #define CFG_PASSIVE_SCAN (1<<10)
#ifdef CONFIG_IPW2100_MONITOR
#define CFG_CRC_CHECK (1<<11)
#endif
#define CAP_SHARED_KEY (1<<0) /* Off = OPEN */ #define CAP_SHARED_KEY (1<<0) /* Off = OPEN */
#define CAP_PRIVACY_ON (1<<1) /* Off = No privacy */ #define CAP_PRIVACY_ON (1<<1) /* Off = No privacy */
struct ipw2100_priv { struct ipw2100_priv {
int stop_hang_check; /* Set 1 when shutting down to kill hang_check */ int stop_hang_check; /* Set 1 when shutting down to kill hang_check */
int stop_rf_kill; /* Set 1 when shutting down to kill rf_kill */ int stop_rf_kill; /* Set 1 when shutting down to kill rf_kill */
struct ieee80211_device *ieee; struct ieee80211_device *ieee;
unsigned long status; unsigned long status;
...@@ -519,19 +516,16 @@ struct ipw2100_priv { ...@@ -519,19 +516,16 @@ struct ipw2100_priv {
unsigned long hw_features; unsigned long hw_features;
int hangs; int hangs;
u32 last_rtc; u32 last_rtc;
int dump_raw; /* 1 to dump raw bytes in /sys/.../memory */ int dump_raw; /* 1 to dump raw bytes in /sys/.../memory */
u8* snapshot[0x30]; u8 *snapshot[0x30];
u8 mandatory_bssid_mac[ETH_ALEN]; u8 mandatory_bssid_mac[ETH_ALEN];
u8 mac_addr[ETH_ALEN]; u8 mac_addr[ETH_ALEN];
int power_mode; int power_mode;
/* WEP data */
struct ieee80211_security sec;
int messages_sent; int messages_sent;
int short_retry_limit; int short_retry_limit;
int long_retry_limit; int long_retry_limit;
...@@ -599,7 +593,6 @@ struct ipw2100_priv { ...@@ -599,7 +593,6 @@ struct ipw2100_priv {
wait_queue_head_t wait_command_queue; wait_queue_head_t wait_command_queue;
}; };
/********************************************************* /*********************************************************
* Host Command -> From Driver to FW * Host Command -> From Driver to FW
*********************************************************/ *********************************************************/
...@@ -646,7 +639,6 @@ struct ipw2100_priv { ...@@ -646,7 +639,6 @@ struct ipw2100_priv {
#define CARD_DISABLE_PHY_OFF 61 #define CARD_DISABLE_PHY_OFF 61
#define MSDU_TX_RATES 62 #define MSDU_TX_RATES 62
/* Rogue AP Detection */ /* Rogue AP Detection */
#define SET_STATION_STAT_BITS 64 #define SET_STATION_STAT_BITS 64
#define CLEAR_STATIONS_STAT_BITS 65 #define CLEAR_STATIONS_STAT_BITS 65
...@@ -655,8 +647,6 @@ struct ipw2100_priv { ...@@ -655,8 +647,6 @@ struct ipw2100_priv {
#define DISASSOCIATION_BSSID 68 #define DISASSOCIATION_BSSID 68
#define SET_WPA_IE 69 #define SET_WPA_IE 69
/* system configuration bit mask: */ /* system configuration bit mask: */
#define IPW_CFG_MONITOR 0x00004 #define IPW_CFG_MONITOR 0x00004
#define IPW_CFG_PREAMBLE_AUTO 0x00010 #define IPW_CFG_PREAMBLE_AUTO 0x00010
...@@ -704,7 +694,7 @@ struct ipw2100_priv { ...@@ -704,7 +694,7 @@ struct ipw2100_priv {
#define IPW2100_INTA_TX_TRANSFER (0x00000001) // Bit 0 (LSB) #define IPW2100_INTA_TX_TRANSFER (0x00000001) // Bit 0 (LSB)
#define IPW2100_INTA_RX_TRANSFER (0x00000002) // Bit 1 #define IPW2100_INTA_RX_TRANSFER (0x00000002) // Bit 1
#define IPW2100_INTA_TX_COMPLETE (0x00000004) // Bit 2 #define IPW2100_INTA_TX_COMPLETE (0x00000004) // Bit 2
#define IPW2100_INTA_EVENT_INTERRUPT (0x00000008) // Bit 3 #define IPW2100_INTA_EVENT_INTERRUPT (0x00000008) // Bit 3
#define IPW2100_INTA_STATUS_CHANGE (0x00000010) // Bit 4 #define IPW2100_INTA_STATUS_CHANGE (0x00000010) // Bit 4
#define IPW2100_INTA_BEACON_PERIOD_EXPIRED (0x00000020) // Bit 5 #define IPW2100_INTA_BEACON_PERIOD_EXPIRED (0x00000020) // Bit 5
#define IPW2100_INTA_SLAVE_MODE_HOST_COMMAND_DONE (0x00010000) // Bit 16 #define IPW2100_INTA_SLAVE_MODE_HOST_COMMAND_DONE (0x00010000) // Bit 16
...@@ -784,9 +774,6 @@ struct ipw2100_priv { ...@@ -784,9 +774,6 @@ struct ipw2100_priv {
#define IPW_CARD_DISABLE_PHY_OFF_COMPLETE_WAIT 100 // 100 milli #define IPW_CARD_DISABLE_PHY_OFF_COMPLETE_WAIT 100 // 100 milli
#define IPW_PREPARE_POWER_DOWN_COMPLETE_WAIT 100 // 100 milli #define IPW_PREPARE_POWER_DOWN_COMPLETE_WAIT 100 // 100 milli
#define IPW_HEADER_802_11_SIZE sizeof(struct ieee80211_hdr_3addr) #define IPW_HEADER_802_11_SIZE sizeof(struct ieee80211_hdr_3addr)
#define IPW_MAX_80211_PAYLOAD_SIZE 2304U #define IPW_MAX_80211_PAYLOAD_SIZE 2304U
#define IPW_MAX_802_11_PAYLOAD_LENGTH 2312 #define IPW_MAX_802_11_PAYLOAD_LENGTH 2312
...@@ -843,8 +830,8 @@ struct ipw2100_rx { ...@@ -843,8 +830,8 @@ struct ipw2100_rx {
#define IPW_TX_POWER_MIN_DBM (-12) #define IPW_TX_POWER_MIN_DBM (-12)
#define IPW_TX_POWER_MAX_DBM 16 #define IPW_TX_POWER_MAX_DBM 16
#define FW_SCAN_DONOT_ASSOCIATE 0x0001 // Dont Attempt to Associate after Scan #define FW_SCAN_DONOT_ASSOCIATE 0x0001 // Dont Attempt to Associate after Scan
#define FW_SCAN_PASSIVE 0x0008 // Force PASSSIVE Scan #define FW_SCAN_PASSIVE 0x0008 // Force PASSSIVE Scan
#define REG_MIN_CHANNEL 0 #define REG_MIN_CHANNEL 0
#define REG_MAX_CHANNEL 14 #define REG_MAX_CHANNEL 14
...@@ -856,7 +843,6 @@ struct ipw2100_rx { ...@@ -856,7 +843,6 @@ struct ipw2100_rx {
#define DIVERSITY_ANTENNA_A 1 // Use antenna A #define DIVERSITY_ANTENNA_A 1 // Use antenna A
#define DIVERSITY_ANTENNA_B 2 // Use antenna B #define DIVERSITY_ANTENNA_B 2 // Use antenna B
#define HOST_COMMAND_WAIT 0 #define HOST_COMMAND_WAIT 0
#define HOST_COMMAND_NO_WAIT 1 #define HOST_COMMAND_NO_WAIT 1
...@@ -873,10 +859,9 @@ struct ipw2100_rx { ...@@ -873,10 +859,9 @@ struct ipw2100_rx {
#define TYPE_ASSOCIATION_REQUEST 0x0013 #define TYPE_ASSOCIATION_REQUEST 0x0013
#define TYPE_REASSOCIATION_REQUEST 0x0014 #define TYPE_REASSOCIATION_REQUEST 0x0014
#define HW_FEATURE_RFKILL 0x0001
#define HW_FEATURE_RFKILL (0x0001) #define RF_KILLSWITCH_OFF 1
#define RF_KILLSWITCH_OFF (1) #define RF_KILLSWITCH_ON 0
#define RF_KILLSWITCH_ON (0)
#define IPW_COMMAND_POOL_SIZE 40 #define IPW_COMMAND_POOL_SIZE 40
...@@ -895,7 +880,7 @@ struct ipw2100_rx { ...@@ -895,7 +880,7 @@ struct ipw2100_rx {
// Fixed size data: Ordinal Table 1 // Fixed size data: Ordinal Table 1
typedef enum _ORDINAL_TABLE_1 { // NS - means Not Supported by FW typedef enum _ORDINAL_TABLE_1 { // NS - means Not Supported by FW
// Transmit statistics // Transmit statistics
IPW_ORD_STAT_TX_HOST_REQUESTS = 1,// # of requested Host Tx's (MSDU) IPW_ORD_STAT_TX_HOST_REQUESTS = 1, // # of requested Host Tx's (MSDU)
IPW_ORD_STAT_TX_HOST_COMPLETE, // # of successful Host Tx's (MSDU) IPW_ORD_STAT_TX_HOST_COMPLETE, // # of successful Host Tx's (MSDU)
IPW_ORD_STAT_TX_DIR_DATA, // # of successful Directed Tx's (MSDU) IPW_ORD_STAT_TX_DIR_DATA, // # of successful Directed Tx's (MSDU)
...@@ -905,42 +890,42 @@ typedef enum _ORDINAL_TABLE_1 { // NS - means Not Supported by FW ...@@ -905,42 +890,42 @@ typedef enum _ORDINAL_TABLE_1 { // NS - means Not Supported by FW
IPW_ORD_STAT_TX_DIR_DATA11, // # of successful Directed Tx's (MSDU) @ 11MB IPW_ORD_STAT_TX_DIR_DATA11, // # of successful Directed Tx's (MSDU) @ 11MB
IPW_ORD_STAT_TX_DIR_DATA22, // # of successful Directed Tx's (MSDU) @ 22MB IPW_ORD_STAT_TX_DIR_DATA22, // # of successful Directed Tx's (MSDU) @ 22MB
IPW_ORD_STAT_TX_NODIR_DATA1 = 13,// # of successful Non_Directed Tx's (MSDU) @ 1MB IPW_ORD_STAT_TX_NODIR_DATA1 = 13, // # of successful Non_Directed Tx's (MSDU) @ 1MB
IPW_ORD_STAT_TX_NODIR_DATA2, // # of successful Non_Directed Tx's (MSDU) @ 2MB IPW_ORD_STAT_TX_NODIR_DATA2, // # of successful Non_Directed Tx's (MSDU) @ 2MB
IPW_ORD_STAT_TX_NODIR_DATA5_5, // # of successful Non_Directed Tx's (MSDU) @ 5.5MB IPW_ORD_STAT_TX_NODIR_DATA5_5, // # of successful Non_Directed Tx's (MSDU) @ 5.5MB
IPW_ORD_STAT_TX_NODIR_DATA11, // # of successful Non_Directed Tx's (MSDU) @ 11MB IPW_ORD_STAT_TX_NODIR_DATA11, // # of successful Non_Directed Tx's (MSDU) @ 11MB
IPW_ORD_STAT_NULL_DATA = 21, // # of successful NULL data Tx's IPW_ORD_STAT_NULL_DATA = 21, // # of successful NULL data Tx's
IPW_ORD_STAT_TX_RTS, // # of successful Tx RTS IPW_ORD_STAT_TX_RTS, // # of successful Tx RTS
IPW_ORD_STAT_TX_CTS, // # of successful Tx CTS IPW_ORD_STAT_TX_CTS, // # of successful Tx CTS
IPW_ORD_STAT_TX_ACK, // # of successful Tx ACK IPW_ORD_STAT_TX_ACK, // # of successful Tx ACK
IPW_ORD_STAT_TX_ASSN, // # of successful Association Tx's IPW_ORD_STAT_TX_ASSN, // # of successful Association Tx's
IPW_ORD_STAT_TX_ASSN_RESP, // # of successful Association response Tx's IPW_ORD_STAT_TX_ASSN_RESP, // # of successful Association response Tx's
IPW_ORD_STAT_TX_REASSN, // # of successful Reassociation Tx's IPW_ORD_STAT_TX_REASSN, // # of successful Reassociation Tx's
IPW_ORD_STAT_TX_REASSN_RESP, // # of successful Reassociation response Tx's IPW_ORD_STAT_TX_REASSN_RESP, // # of successful Reassociation response Tx's
IPW_ORD_STAT_TX_PROBE, // # of probes successfully transmitted IPW_ORD_STAT_TX_PROBE, // # of probes successfully transmitted
IPW_ORD_STAT_TX_PROBE_RESP, // # of probe responses successfully transmitted IPW_ORD_STAT_TX_PROBE_RESP, // # of probe responses successfully transmitted
IPW_ORD_STAT_TX_BEACON, // # of tx beacon IPW_ORD_STAT_TX_BEACON, // # of tx beacon
IPW_ORD_STAT_TX_ATIM, // # of Tx ATIM IPW_ORD_STAT_TX_ATIM, // # of Tx ATIM
IPW_ORD_STAT_TX_DISASSN, // # of successful Disassociation TX IPW_ORD_STAT_TX_DISASSN, // # of successful Disassociation TX
IPW_ORD_STAT_TX_AUTH, // # of successful Authentication Tx IPW_ORD_STAT_TX_AUTH, // # of successful Authentication Tx
IPW_ORD_STAT_TX_DEAUTH, // # of successful Deauthentication TX IPW_ORD_STAT_TX_DEAUTH, // # of successful Deauthentication TX
IPW_ORD_STAT_TX_TOTAL_BYTES = 41,// Total successful Tx data bytes IPW_ORD_STAT_TX_TOTAL_BYTES = 41, // Total successful Tx data bytes
IPW_ORD_STAT_TX_RETRIES, // # of Tx retries IPW_ORD_STAT_TX_RETRIES, // # of Tx retries
IPW_ORD_STAT_TX_RETRY1, // # of Tx retries at 1MBPS IPW_ORD_STAT_TX_RETRY1, // # of Tx retries at 1MBPS
IPW_ORD_STAT_TX_RETRY2, // # of Tx retries at 2MBPS IPW_ORD_STAT_TX_RETRY2, // # of Tx retries at 2MBPS
IPW_ORD_STAT_TX_RETRY5_5, // # of Tx retries at 5.5MBPS IPW_ORD_STAT_TX_RETRY5_5, // # of Tx retries at 5.5MBPS
IPW_ORD_STAT_TX_RETRY11, // # of Tx retries at 11MBPS IPW_ORD_STAT_TX_RETRY11, // # of Tx retries at 11MBPS
IPW_ORD_STAT_TX_FAILURES = 51, // # of Tx Failures IPW_ORD_STAT_TX_FAILURES = 51, // # of Tx Failures
IPW_ORD_STAT_TX_ABORT_AT_HOP, //NS // # of Tx's aborted at hop time IPW_ORD_STAT_TX_ABORT_AT_HOP, //NS // # of Tx's aborted at hop time
IPW_ORD_STAT_TX_MAX_TRIES_IN_HOP,// # of times max tries in a hop failed IPW_ORD_STAT_TX_MAX_TRIES_IN_HOP, // # of times max tries in a hop failed
IPW_ORD_STAT_TX_ABORT_LATE_DMA, //NS // # of times tx aborted due to late dma setup IPW_ORD_STAT_TX_ABORT_LATE_DMA, //NS // # of times tx aborted due to late dma setup
IPW_ORD_STAT_TX_ABORT_STX, //NS // # of times backoff aborted IPW_ORD_STAT_TX_ABORT_STX, //NS // # of times backoff aborted
IPW_ORD_STAT_TX_DISASSN_FAIL, // # of times disassociation failed IPW_ORD_STAT_TX_DISASSN_FAIL, // # of times disassociation failed
IPW_ORD_STAT_TX_ERR_CTS, // # of missed/bad CTS frames IPW_ORD_STAT_TX_ERR_CTS, // # of missed/bad CTS frames
IPW_ORD_STAT_TX_BPDU, //NS // # of spanning tree BPDUs sent IPW_ORD_STAT_TX_BPDU, //NS // # of spanning tree BPDUs sent
IPW_ORD_STAT_TX_ERR_ACK, // # of tx err due to acks IPW_ORD_STAT_TX_ERR_ACK, // # of tx err due to acks
// Receive statistics // Receive statistics
...@@ -952,7 +937,7 @@ typedef enum _ORDINAL_TABLE_1 { // NS - means Not Supported by FW ...@@ -952,7 +937,7 @@ typedef enum _ORDINAL_TABLE_1 { // NS - means Not Supported by FW
IPW_ORD_STAT_RX_DIR_DATA11, // # of directed packets at 11MB IPW_ORD_STAT_RX_DIR_DATA11, // # of directed packets at 11MB
IPW_ORD_STAT_RX_DIR_DATA22, // # of directed packets at 22MB IPW_ORD_STAT_RX_DIR_DATA22, // # of directed packets at 22MB
IPW_ORD_STAT_RX_NODIR_DATA = 71,// # of nondirected packets IPW_ORD_STAT_RX_NODIR_DATA = 71, // # of nondirected packets
IPW_ORD_STAT_RX_NODIR_DATA1, // # of nondirected packets at 1MB IPW_ORD_STAT_RX_NODIR_DATA1, // # of nondirected packets at 1MB
IPW_ORD_STAT_RX_NODIR_DATA2, // # of nondirected packets at 2MB IPW_ORD_STAT_RX_NODIR_DATA2, // # of nondirected packets at 2MB
IPW_ORD_STAT_RX_NODIR_DATA5_5, // # of nondirected packets at 5.5MB IPW_ORD_STAT_RX_NODIR_DATA5_5, // # of nondirected packets at 5.5MB
...@@ -977,18 +962,18 @@ typedef enum _ORDINAL_TABLE_1 { // NS - means Not Supported by FW ...@@ -977,18 +962,18 @@ typedef enum _ORDINAL_TABLE_1 { // NS - means Not Supported by FW
IPW_ORD_STAT_RX_AUTH, // # of authentication Rx IPW_ORD_STAT_RX_AUTH, // # of authentication Rx
IPW_ORD_STAT_RX_DEAUTH, // # of deauthentication Rx IPW_ORD_STAT_RX_DEAUTH, // # of deauthentication Rx
IPW_ORD_STAT_RX_TOTAL_BYTES = 101,// Total rx data bytes received IPW_ORD_STAT_RX_TOTAL_BYTES = 101, // Total rx data bytes received
IPW_ORD_STAT_RX_ERR_CRC, // # of packets with Rx CRC error IPW_ORD_STAT_RX_ERR_CRC, // # of packets with Rx CRC error
IPW_ORD_STAT_RX_ERR_CRC1, // # of Rx CRC errors at 1MB IPW_ORD_STAT_RX_ERR_CRC1, // # of Rx CRC errors at 1MB
IPW_ORD_STAT_RX_ERR_CRC2, // # of Rx CRC errors at 2MB IPW_ORD_STAT_RX_ERR_CRC2, // # of Rx CRC errors at 2MB
IPW_ORD_STAT_RX_ERR_CRC5_5, // # of Rx CRC errors at 5.5MB IPW_ORD_STAT_RX_ERR_CRC5_5, // # of Rx CRC errors at 5.5MB
IPW_ORD_STAT_RX_ERR_CRC11, // # of Rx CRC errors at 11MB IPW_ORD_STAT_RX_ERR_CRC11, // # of Rx CRC errors at 11MB
IPW_ORD_STAT_RX_DUPLICATE1 = 112, // # of duplicate rx packets at 1MB IPW_ORD_STAT_RX_DUPLICATE1 = 112, // # of duplicate rx packets at 1MB
IPW_ORD_STAT_RX_DUPLICATE2, // # of duplicate rx packets at 2MB IPW_ORD_STAT_RX_DUPLICATE2, // # of duplicate rx packets at 2MB
IPW_ORD_STAT_RX_DUPLICATE5_5, // # of duplicate rx packets at 5.5MB IPW_ORD_STAT_RX_DUPLICATE5_5, // # of duplicate rx packets at 5.5MB
IPW_ORD_STAT_RX_DUPLICATE11, // # of duplicate rx packets at 11MB IPW_ORD_STAT_RX_DUPLICATE11, // # of duplicate rx packets at 11MB
IPW_ORD_STAT_RX_DUPLICATE = 119, // # of duplicate rx packets IPW_ORD_STAT_RX_DUPLICATE = 119, // # of duplicate rx packets
IPW_ORD_PERS_DB_LOCK = 120, // # locking fw permanent db IPW_ORD_PERS_DB_LOCK = 120, // # locking fw permanent db
IPW_ORD_PERS_DB_SIZE, // # size of fw permanent db IPW_ORD_PERS_DB_SIZE, // # size of fw permanent db
...@@ -1006,17 +991,17 @@ typedef enum _ORDINAL_TABLE_1 { // NS - means Not Supported by FW ...@@ -1006,17 +991,17 @@ typedef enum _ORDINAL_TABLE_1 { // NS - means Not Supported by FW
IPW_ORD_STAT_RX_ICV_ERRORS, // # of ICV errors during decryption IPW_ORD_STAT_RX_ICV_ERRORS, // # of ICV errors during decryption
// PSP Statistics // PSP Statistics
IPW_ORD_STAT_PSP_SUSPENSION = 137,// # of times adapter suspended IPW_ORD_STAT_PSP_SUSPENSION = 137, // # of times adapter suspended
IPW_ORD_STAT_PSP_BCN_TIMEOUT, // # of beacon timeout IPW_ORD_STAT_PSP_BCN_TIMEOUT, // # of beacon timeout
IPW_ORD_STAT_PSP_POLL_TIMEOUT, // # of poll response timeouts IPW_ORD_STAT_PSP_POLL_TIMEOUT, // # of poll response timeouts
IPW_ORD_STAT_PSP_NONDIR_TIMEOUT,// # of timeouts waiting for last broadcast/muticast pkt IPW_ORD_STAT_PSP_NONDIR_TIMEOUT, // # of timeouts waiting for last broadcast/muticast pkt
IPW_ORD_STAT_PSP_RX_DTIMS, // # of PSP DTIMs received IPW_ORD_STAT_PSP_RX_DTIMS, // # of PSP DTIMs received
IPW_ORD_STAT_PSP_RX_TIMS, // # of PSP TIMs received IPW_ORD_STAT_PSP_RX_TIMS, // # of PSP TIMs received
IPW_ORD_STAT_PSP_STATION_ID, // PSP Station ID IPW_ORD_STAT_PSP_STATION_ID, // PSP Station ID
// Association and roaming // Association and roaming
IPW_ORD_LAST_ASSN_TIME = 147, // RTC time of last association IPW_ORD_LAST_ASSN_TIME = 147, // RTC time of last association
IPW_ORD_STAT_PERCENT_MISSED_BCNS,// current calculation of % missed beacons IPW_ORD_STAT_PERCENT_MISSED_BCNS, // current calculation of % missed beacons
IPW_ORD_STAT_PERCENT_RETRIES, // current calculation of % missed tx retries IPW_ORD_STAT_PERCENT_RETRIES, // current calculation of % missed tx retries
IPW_ORD_ASSOCIATED_AP_PTR, // If associated, this is ptr to the associated IPW_ORD_ASSOCIATED_AP_PTR, // If associated, this is ptr to the associated
// AP table entry. set to 0 if not associated // AP table entry. set to 0 if not associated
...@@ -1151,7 +1136,7 @@ struct ipw2100_fw_chunk { ...@@ -1151,7 +1136,7 @@ struct ipw2100_fw_chunk {
}; };
struct ipw2100_fw_chunk_set { struct ipw2100_fw_chunk_set {
const void *data; const void *data;
unsigned long size; unsigned long size;
}; };
...@@ -1164,4 +1149,4 @@ struct ipw2100_fw { ...@@ -1164,4 +1149,4 @@ struct ipw2100_fw {
#define MAX_FW_VERSION_LEN 14 #define MAX_FW_VERSION_LEN 14
#endif /* _IPW2100_H */ #endif /* _IPW2100_H */
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册