Commit deefcf06 authored by David Gibson's avatar David Gibson Committed by Jeff Garzik

[PATCH] orinoco merge preliminaries - more HW data

Update various constants and structures in orinoco header files.  The
updates generally represent either newer hardware/firmware features,
or corrections to what we know about hardware/firmware functions.
Signed-off-by: default avatarDavid Gibson <hermes@gibson.dropbear.id.au>

Index: working-2.6/drivers/net/wireless/hermes.h
===================================================================
parent a0be09fb
...@@ -133,7 +133,6 @@ ...@@ -133,7 +133,6 @@
/*--- Buffer Mgmt Commands ---------------------------*/ /*--- Buffer Mgmt Commands ---------------------------*/
#define HERMES_CMD_ALLOC (0x000A) #define HERMES_CMD_ALLOC (0x000A)
#define HERMES_CMD_TX (0x000B) #define HERMES_CMD_TX (0x000B)
#define HERMES_CMD_CLRPRST (0x0012)
/*--- Regulate Commands ------------------------------*/ /*--- Regulate Commands ------------------------------*/
#define HERMES_CMD_NOTIFY (0x0010) #define HERMES_CMD_NOTIFY (0x0010)
...@@ -143,10 +142,34 @@ ...@@ -143,10 +142,34 @@
#define HERMES_CMD_ACCESS (0x0021) #define HERMES_CMD_ACCESS (0x0021)
#define HERMES_CMD_DOWNLD (0x0022) #define HERMES_CMD_DOWNLD (0x0022)
/*--- Serial I/O Commands ----------------------------*/
#define HERMES_CMD_READMIF (0x0030)
#define HERMES_CMD_WRITEMIF (0x0031)
/*--- Debugging Commands -----------------------------*/ /*--- Debugging Commands -----------------------------*/
#define HERMES_CMD_MONITOR (0x0038) #define HERMES_CMD_TEST (0x0038)
#define HERMES_MONITOR_ENABLE (0x000b)
#define HERMES_MONITOR_DISABLE (0x000f)
/* Test command arguments */
#define HERMES_TEST_SET_CHANNEL 0x0800
#define HERMES_TEST_MONITOR 0x0b00
#define HERMES_TEST_STOP 0x0f00
/* Authentication algorithms */
#define HERMES_AUTH_OPEN 1
#define HERMES_AUTH_SHARED_KEY 2
/* WEP settings */
#define HERMES_WEP_PRIVACY_INVOKED 0x0001
#define HERMES_WEP_EXCL_UNENCRYPTED 0x0002
#define HERMES_WEP_HOST_ENCRYPT 0x0010
#define HERMES_WEP_HOST_DECRYPT 0x0080
/* Symbol hostscan options */
#define HERMES_HOSTSCAN_SYMBOL_5SEC 0x0001
#define HERMES_HOSTSCAN_SYMBOL_ONCE 0x0002
#define HERMES_HOSTSCAN_SYMBOL_PASSIVE 0x0040
#define HERMES_HOSTSCAN_SYMBOL_BCAST 0x0080
/* /*
* Frame structures and constants * Frame structures and constants
...@@ -191,7 +214,11 @@ struct hermes_tx_descriptor { ...@@ -191,7 +214,11 @@ struct hermes_tx_descriptor {
#define HERMES_INQ_TALLIES (0xF100) #define HERMES_INQ_TALLIES (0xF100)
#define HERMES_INQ_SCAN (0xF101) #define HERMES_INQ_SCAN (0xF101)
#define HERMES_INQ_CHANNELINFO (0xF102)
#define HERMES_INQ_HOSTSCAN (0xF103)
#define HERMES_INQ_HOSTSCAN_SYMBOL (0xF104)
#define HERMES_INQ_LINKSTATUS (0xF200) #define HERMES_INQ_LINKSTATUS (0xF200)
#define HERMES_INQ_SEC_STAT_AGERE (0xF202)
struct hermes_tallies_frame { struct hermes_tallies_frame {
u16 TxUnicastFrames; u16 TxUnicastFrames;
...@@ -223,23 +250,58 @@ struct hermes_tallies_frame { ...@@ -223,23 +250,58 @@ struct hermes_tallies_frame {
/* Grabbed from wlan-ng - Thanks Mark... - Jean II /* Grabbed from wlan-ng - Thanks Mark... - Jean II
* This is the result of a scan inquiry command */ * This is the result of a scan inquiry command */
/* Structure describing info about an Access Point */ /* Structure describing info about an Access Point */
struct hermes_scan_apinfo { struct prism2_scan_apinfo {
u16 channel; /* Channel where the AP sits */ u16 channel; /* Channel where the AP sits */
u16 noise; /* Noise level */ u16 noise; /* Noise level */
u16 level; /* Signal level */ u16 level; /* Signal level */
u8 bssid[ETH_ALEN]; /* MAC address of the Access Point */ u8 bssid[ETH_ALEN]; /* MAC address of the Access Point */
u16 beacon_interv; /* Beacon interval ? */ u16 beacon_interv; /* Beacon interval */
u16 capabilities; /* Capabilities ? */ u16 capabilities; /* Capabilities */
u16 essid_len; /* ESSID length */
u8 essid[32]; /* ESSID of the network */ u8 essid[32]; /* ESSID of the network */
u8 rates[10]; /* Bit rate supported */ u8 rates[10]; /* Bit rate supported */
u16 proberesp_rate; /* ???? */ u16 proberesp_rate; /* Data rate of the response frame */
u16 atim; /* ATIM window time, Kus (hostscan only) */
} __attribute__ ((packed)); } __attribute__ ((packed));
/* Container */
struct hermes_scan_frame { /* Same stuff for the Lucent/Agere card.
u16 rsvd; /* ??? */ * Thanks to h1kari <h1kari AT dachb0den.com> - Jean II */
u16 scanreason; /* ??? */ struct agere_scan_apinfo {
struct hermes_scan_apinfo aps[35]; /* Scan result */ u16 channel; /* Channel where the AP sits */
u16 noise; /* Noise level */
u16 level; /* Signal level */
u8 bssid[ETH_ALEN]; /* MAC address of the Access Point */
u16 beacon_interv; /* Beacon interval */
u16 capabilities; /* Capabilities */
/* bits: 0-ess, 1-ibss, 4-privacy [wep] */
u16 essid_len; /* ESSID length */
u8 essid[32]; /* ESSID of the network */
} __attribute__ ((packed));
/* Moustafa: Scan structure for Symbol cards */
struct symbol_scan_apinfo {
u8 channel; /* Channel where the AP sits */
u8 unknown1; /* 8 in 2.9x and 3.9x f/w, 0 otherwise */
u16 noise; /* Noise level */
u16 level; /* Signal level */
u8 bssid[ETH_ALEN]; /* MAC address of the Access Point */
u16 beacon_interv; /* Beacon interval */
u16 capabilities; /* Capabilities */
/* bits: 0-ess, 1-ibss, 4-privacy [wep] */
u16 essid_len; /* ESSID length */
u8 essid[32]; /* ESSID of the network */
u16 rates[5]; /* Bit rate supported */
u16 basic_rates; /* Basic rates bitmask */
u8 unknown2[6]; /* Always FF:FF:FF:FF:00:00 */
u8 unknown3[8]; /* Always 0, appeared in f/w 3.91-68 */
} __attribute__ ((packed)); } __attribute__ ((packed));
union hermes_scan_info {
struct agere_scan_apinfo a;
struct prism2_scan_apinfo p;
struct symbol_scan_apinfo s;
};
#define HERMES_LINKSTATUS_NOT_CONNECTED (0x0000) #define HERMES_LINKSTATUS_NOT_CONNECTED (0x0000)
#define HERMES_LINKSTATUS_CONNECTED (0x0001) #define HERMES_LINKSTATUS_CONNECTED (0x0001)
#define HERMES_LINKSTATUS_DISCONNECTED (0x0002) #define HERMES_LINKSTATUS_DISCONNECTED (0x0002)
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#define HERMES_RID_CNFWDSADDRESS6 0xFC16 #define HERMES_RID_CNFWDSADDRESS6 0xFC16
#define HERMES_RID_CNFMULTICASTPMBUFFERING 0xFC17 #define HERMES_RID_CNFMULTICASTPMBUFFERING 0xFC17
#define HERMES_RID_CNFWEPENABLED_AGERE 0xFC20 #define HERMES_RID_CNFWEPENABLED_AGERE 0xFC20
#define HERMES_RID_CNFAUTHENTICATION_AGERE 0xFC21
#define HERMES_RID_CNFMANDATORYBSSID_SYMBOL 0xFC21 #define HERMES_RID_CNFMANDATORYBSSID_SYMBOL 0xFC21
#define HERMES_RID_CNFWEPDEFAULTKEYID 0xFC23 #define HERMES_RID_CNFWEPDEFAULTKEYID 0xFC23
#define HERMES_RID_CNFDEFAULTKEY0 0xFC24 #define HERMES_RID_CNFDEFAULTKEY0 0xFC24
...@@ -75,11 +76,13 @@ ...@@ -75,11 +76,13 @@
#define HERMES_RID_CNFRTSTHRESHOLD4 0xFC9B #define HERMES_RID_CNFRTSTHRESHOLD4 0xFC9B
#define HERMES_RID_CNFRTSTHRESHOLD5 0xFC9C #define HERMES_RID_CNFRTSTHRESHOLD5 0xFC9C
#define HERMES_RID_CNFRTSTHRESHOLD6 0xFC9D #define HERMES_RID_CNFRTSTHRESHOLD6 0xFC9D
#define HERMES_RID_CNFHOSTSCAN_SYMBOL 0xFCAB
#define HERMES_RID_CNFSHORTPREAMBLE 0xFCB0 #define HERMES_RID_CNFSHORTPREAMBLE 0xFCB0
#define HERMES_RID_CNFWEPKEYS_AGERE 0xFCB0 #define HERMES_RID_CNFWEPKEYS_AGERE 0xFCB0
#define HERMES_RID_CNFEXCLUDELONGPREAMBLE 0xFCB1 #define HERMES_RID_CNFEXCLUDELONGPREAMBLE 0xFCB1
#define HERMES_RID_CNFTXKEY_AGERE 0xFCB1 #define HERMES_RID_CNFTXKEY_AGERE 0xFCB1
#define HERMES_RID_CNFAUTHENTICATIONRSPTO 0xFCB2 #define HERMES_RID_CNFAUTHENTICATIONRSPTO 0xFCB2
#define HERMES_RID_CNFSCANSSID_AGERE 0xFCB2
#define HERMES_RID_CNFBASICRATES 0xFCB3 #define HERMES_RID_CNFBASICRATES 0xFCB3
#define HERMES_RID_CNFSUPPORTEDRATES 0xFCB4 #define HERMES_RID_CNFSUPPORTEDRATES 0xFCB4
#define HERMES_RID_CNFTICKTIME 0xFCE0 #define HERMES_RID_CNFTICKTIME 0xFCE0
...@@ -87,6 +90,7 @@ ...@@ -87,6 +90,7 @@
#define HERMES_RID_CNFJOINREQUEST 0xFCE2 #define HERMES_RID_CNFJOINREQUEST 0xFCE2
#define HERMES_RID_CNFAUTHENTICATESTATION 0xFCE3 #define HERMES_RID_CNFAUTHENTICATESTATION 0xFCE3
#define HERMES_RID_CNFCHANNELINFOREQUEST 0xFCE4 #define HERMES_RID_CNFCHANNELINFOREQUEST 0xFCE4
#define HERMES_RID_CNFHOSTSCAN 0xFCE5
/* /*
* Information RIDs * Information RIDs
...@@ -124,6 +128,7 @@ ...@@ -124,6 +128,7 @@
#define HERMES_RID_CFPOLLABLE 0xFD4C #define HERMES_RID_CFPOLLABLE 0xFD4C
#define HERMES_RID_AUTHENTICATIONALGORITHMS 0xFD4D #define HERMES_RID_AUTHENTICATIONALGORITHMS 0xFD4D
#define HERMES_RID_PRIVACYOPTIONIMPLEMENTED 0xFD4F #define HERMES_RID_PRIVACYOPTIONIMPLEMENTED 0xFD4F
#define HERMES_RID_DBMCOMMSQUALITY_INTERSIL 0xFD51
#define HERMES_RID_CURRENTTXRATE1 0xFD80 #define HERMES_RID_CURRENTTXRATE1 0xFD80
#define HERMES_RID_CURRENTTXRATE2 0xFD81 #define HERMES_RID_CURRENTTXRATE2 0xFD81
#define HERMES_RID_CURRENTTXRATE3 0xFD82 #define HERMES_RID_CURRENTTXRATE3 0xFD82
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment