diff options
author | James Ketrenos <jketreno@linux.intel.com> | 2005-08-24 22:43:11 -0400 |
---|---|---|
committer | James Ketrenos <jketreno@linux.intel.com> | 2005-11-07 18:49:53 -0500 |
commit | a613bffd3aac89bb0a8c9b7afa72af9b0ae30f0a (patch) | |
tree | 982d4f3de285993749138b0e6e2f2d778b120407 /drivers/net/wireless/ipw2200.h | |
parent | ea2b26e0a0264650e13acac8e66d315bb818897c (diff) |
Catch ipw2200 up to equivelancy with v1.0.2
Removed unneeded parenthesis around numeric constant defines
Added support for iwspy
Put in fix for Ad-Hoc mode not passing through all packets (thanks to KKH)
Put in fix for fragmentation not working for fragment sizes between
441-464 bytes (thanks to Mohamed Abbas)
Fixed #592 problem of CONFIG_IEEE80211_WPA_MODULE not including WPA
support into the driver -- fixed as a result of no longer limiting WPAs
inclusion
Fixed #594 problem with user rates mask causing lack of association if
AP mandatory rate is masked out. We now add back in as a supported rate
any mandatory rate.
Fixed #597 kernel oops due to calling dev_kfree_skb on an skb multiple times.
Added code to control LEDs that can be controlled through the wireless
NIC (vs. non-wireless HW interfaces) -- this is currently disabled by
default due to reports by some users of it hanging their laptop.
Added some more debug messages around fragmentation logic
Added locking around STATUS_HCMD_ACTIVE to prevent re-entry race
conditions
Moved ipw_adapter_restart to only execute on the priv->workqueue to
keep keyboard errors from occuring during adapter restart
Added CFG_BACKGROUND_SCAN to easily allow people to play with
background scanning implementations
Modified WPA logic to send WPA IE if one is set (vs. being based on
wpa_enabled)
Modified scan result logic to report WPA and RSN IEs if set (vs. being
based on wpa_enabled)
Fixed issues with endianess compatability between the host and
wireless adapter (thanks to York Liu and Yi Zhu)
Fixed problem with Ad-Hoc network creation causing a firmware error if
a scan was actively running (thanks to Mohamed Abbas)
Signed-off-by: James Ketrenos <jketreno@linux.intel.com>
Diffstat (limited to 'drivers/net/wireless/ipw2200.h')
-rw-r--r-- | drivers/net/wireless/ipw2200.h | 73 |
1 files changed, 48 insertions, 25 deletions
diff --git a/drivers/net/wireless/ipw2200.h b/drivers/net/wireless/ipw2200.h index 068027963181..1b339cb7a522 100644 --- a/drivers/net/wireless/ipw2200.h +++ b/drivers/net/wireless/ipw2200.h | |||
@@ -403,9 +403,9 @@ struct clx2_tx_queue { | |||
403 | #define RX_FREE_BUFFERS 32 | 403 | #define RX_FREE_BUFFERS 32 |
404 | #define RX_LOW_WATERMARK 8 | 404 | #define RX_LOW_WATERMARK 8 |
405 | 405 | ||
406 | #define SUP_RATE_11A_MAX_NUM_CHANNELS (8) | 406 | #define SUP_RATE_11A_MAX_NUM_CHANNELS 8 |
407 | #define SUP_RATE_11B_MAX_NUM_CHANNELS (4) | 407 | #define SUP_RATE_11B_MAX_NUM_CHANNELS 4 |
408 | #define SUP_RATE_11G_MAX_NUM_CHANNELS (12) | 408 | #define SUP_RATE_11G_MAX_NUM_CHANNELS 12 |
409 | 409 | ||
410 | // Used for passing to driver number of successes and failures per rate | 410 | // Used for passing to driver number of successes and failures per rate |
411 | struct rate_histogram { | 411 | struct rate_histogram { |
@@ -890,6 +890,9 @@ struct ipw_cmd { | |||
890 | #define STATUS_SCANNING (1<<21) | 890 | #define STATUS_SCANNING (1<<21) |
891 | #define STATUS_SCAN_ABORTING (1<<22) | 891 | #define STATUS_SCAN_ABORTING (1<<22) |
892 | 892 | ||
893 | #define STATUS_LED_LINK_ON (1<<24) | ||
894 | #define STATUS_LED_ACT_ON (1<<25) | ||
895 | |||
893 | #define STATUS_INDIRECT_BYTE (1<<28) /* sysfs entry configured for access */ | 896 | #define STATUS_INDIRECT_BYTE (1<<28) /* sysfs entry configured for access */ |
894 | #define STATUS_INDIRECT_DWORD (1<<29) /* sysfs entry configured for access */ | 897 | #define STATUS_INDIRECT_DWORD (1<<29) /* sysfs entry configured for access */ |
895 | #define STATUS_DIRECT_DWORD (1<<30) /* sysfs entry configured for access */ | 898 | #define STATUS_DIRECT_DWORD (1<<30) /* sysfs entry configured for access */ |
@@ -905,6 +908,8 @@ struct ipw_cmd { | |||
905 | #define CFG_ASSOCIATE (1<<6) | 908 | #define CFG_ASSOCIATE (1<<6) |
906 | #define CFG_FIXED_RATE (1<<7) | 909 | #define CFG_FIXED_RATE (1<<7) |
907 | #define CFG_ADHOC_CREATE (1<<8) | 910 | #define CFG_ADHOC_CREATE (1<<8) |
911 | #define CFG_NO_LED (1<<9) | ||
912 | #define CFG_BACKGROUND_SCAN (1<<10) | ||
908 | 913 | ||
909 | #define CAP_SHARED_KEY (1<<0) /* Off = OPEN */ | 914 | #define CAP_SHARED_KEY (1<<0) /* Off = OPEN */ |
910 | #define CAP_PRIVACY_ON (1<<1) /* Off = No privacy */ | 915 | #define CAP_PRIVACY_ON (1<<1) /* Off = No privacy */ |
@@ -1046,9 +1051,24 @@ struct ipw_priv { | |||
1046 | struct work_struct abort_scan; | 1051 | struct work_struct abort_scan; |
1047 | struct work_struct roam; | 1052 | struct work_struct roam; |
1048 | struct work_struct scan_check; | 1053 | struct work_struct scan_check; |
1054 | struct work_struct link_up; | ||
1055 | struct work_struct link_down; | ||
1049 | 1056 | ||
1050 | struct tasklet_struct irq_tasklet; | 1057 | struct tasklet_struct irq_tasklet; |
1051 | 1058 | ||
1059 | /* LED related variables and work_struct */ | ||
1060 | u8 nic_type; | ||
1061 | u32 led_activity_on; | ||
1062 | u32 led_activity_off; | ||
1063 | u32 led_association_on; | ||
1064 | u32 led_association_off; | ||
1065 | u32 led_ofdm_on; | ||
1066 | u32 led_ofdm_off; | ||
1067 | |||
1068 | struct work_struct led_link_on; | ||
1069 | struct work_struct led_link_off; | ||
1070 | struct work_struct led_act_off; | ||
1071 | |||
1052 | #define IPW_2200BG 1 | 1072 | #define IPW_2200BG 1 |
1053 | #define IPW_2915ABG 2 | 1073 | #define IPW_2915ABG 2 |
1054 | u8 adapter; | 1074 | u8 adapter; |
@@ -1126,6 +1146,8 @@ do { if (ipw_debug_level & (level)) \ | |||
1126 | #define IPW_DL_RF_KILL (1<<17) | 1146 | #define IPW_DL_RF_KILL (1<<17) |
1127 | #define IPW_DL_FW_ERRORS (1<<18) | 1147 | #define IPW_DL_FW_ERRORS (1<<18) |
1128 | 1148 | ||
1149 | #define IPW_DL_LED (1<<19) | ||
1150 | |||
1129 | #define IPW_DL_ORD (1<<20) | 1151 | #define IPW_DL_ORD (1<<20) |
1130 | 1152 | ||
1131 | #define IPW_DL_FRAG (1<<21) | 1153 | #define IPW_DL_FRAG (1<<21) |
@@ -1151,6 +1173,7 @@ do { if (ipw_debug_level & (level)) \ | |||
1151 | #define IPW_DEBUG_TX(f, a...) IPW_DEBUG(IPW_DL_TX, f, ## a) | 1173 | #define IPW_DEBUG_TX(f, a...) IPW_DEBUG(IPW_DL_TX, f, ## a) |
1152 | #define IPW_DEBUG_ISR(f, a...) IPW_DEBUG(IPW_DL_ISR, f, ## a) | 1174 | #define IPW_DEBUG_ISR(f, a...) IPW_DEBUG(IPW_DL_ISR, f, ## a) |
1153 | #define IPW_DEBUG_MANAGEMENT(f, a...) IPW_DEBUG(IPW_DL_MANAGE, f, ## a) | 1175 | #define IPW_DEBUG_MANAGEMENT(f, a...) IPW_DEBUG(IPW_DL_MANAGE, f, ## a) |
1176 | #define IPW_DEBUG_LED(f, a...) IPW_DEBUG(IPW_DL_LED, f, ## a) | ||
1154 | #define IPW_DEBUG_WEP(f, a...) IPW_DEBUG(IPW_DL_WEP, f, ## a) | 1177 | #define IPW_DEBUG_WEP(f, a...) IPW_DEBUG(IPW_DL_WEP, f, ## a) |
1155 | #define IPW_DEBUG_HC(f, a...) IPW_DEBUG(IPW_DL_HOST_COMMAND, f, ## a) | 1178 | #define IPW_DEBUG_HC(f, a...) IPW_DEBUG(IPW_DL_HOST_COMMAND, f, ## a) |
1156 | #define IPW_DEBUG_FRAG(f, a...) IPW_DEBUG(IPW_DL_FRAG, f, ## a) | 1179 | #define IPW_DEBUG_FRAG(f, a...) IPW_DEBUG(IPW_DL_FRAG, f, ## a) |
@@ -1268,25 +1291,25 @@ do { if (ipw_debug_level & (level)) \ | |||
1268 | #define CX2_DMA_I_DMA_CONTROL 0x003000A4 | 1291 | #define CX2_DMA_I_DMA_CONTROL 0x003000A4 |
1269 | #define CX2_DMA_I_CB_BASE 0x003000A0 | 1292 | #define CX2_DMA_I_CB_BASE 0x003000A0 |
1270 | 1293 | ||
1271 | #define CX2_TX_CMD_QUEUE_BD_BASE (0x00000200) | 1294 | #define CX2_TX_CMD_QUEUE_BD_BASE 0x00000200 |
1272 | #define CX2_TX_CMD_QUEUE_BD_SIZE (0x00000204) | 1295 | #define CX2_TX_CMD_QUEUE_BD_SIZE 0x00000204 |
1273 | #define CX2_TX_QUEUE_0_BD_BASE (0x00000208) | 1296 | #define CX2_TX_QUEUE_0_BD_BASE 0x00000208 |
1274 | #define CX2_TX_QUEUE_0_BD_SIZE (0x0000020C) | 1297 | #define CX2_TX_QUEUE_0_BD_SIZE (0x0000020C) |
1275 | #define CX2_TX_QUEUE_1_BD_BASE (0x00000210) | 1298 | #define CX2_TX_QUEUE_1_BD_BASE 0x00000210 |
1276 | #define CX2_TX_QUEUE_1_BD_SIZE (0x00000214) | 1299 | #define CX2_TX_QUEUE_1_BD_SIZE 0x00000214 |
1277 | #define CX2_TX_QUEUE_2_BD_BASE (0x00000218) | 1300 | #define CX2_TX_QUEUE_2_BD_BASE 0x00000218 |
1278 | #define CX2_TX_QUEUE_2_BD_SIZE (0x0000021C) | 1301 | #define CX2_TX_QUEUE_2_BD_SIZE (0x0000021C) |
1279 | #define CX2_TX_QUEUE_3_BD_BASE (0x00000220) | 1302 | #define CX2_TX_QUEUE_3_BD_BASE 0x00000220 |
1280 | #define CX2_TX_QUEUE_3_BD_SIZE (0x00000224) | 1303 | #define CX2_TX_QUEUE_3_BD_SIZE 0x00000224 |
1281 | #define CX2_RX_BD_BASE (0x00000240) | 1304 | #define CX2_RX_BD_BASE 0x00000240 |
1282 | #define CX2_RX_BD_SIZE (0x00000244) | 1305 | #define CX2_RX_BD_SIZE 0x00000244 |
1283 | #define CX2_RFDS_TABLE_LOWER (0x00000500) | 1306 | #define CX2_RFDS_TABLE_LOWER 0x00000500 |
1284 | 1307 | ||
1285 | #define CX2_TX_CMD_QUEUE_READ_INDEX (0x00000280) | 1308 | #define CX2_TX_CMD_QUEUE_READ_INDEX 0x00000280 |
1286 | #define CX2_TX_QUEUE_0_READ_INDEX (0x00000284) | 1309 | #define CX2_TX_QUEUE_0_READ_INDEX 0x00000284 |
1287 | #define CX2_TX_QUEUE_1_READ_INDEX (0x00000288) | 1310 | #define CX2_TX_QUEUE_1_READ_INDEX 0x00000288 |
1288 | #define CX2_TX_QUEUE_2_READ_INDEX (0x0000028C) | 1311 | #define CX2_TX_QUEUE_2_READ_INDEX (0x0000028C) |
1289 | #define CX2_TX_QUEUE_3_READ_INDEX (0x00000290) | 1312 | #define CX2_TX_QUEUE_3_READ_INDEX 0x00000290 |
1290 | #define CX2_RX_READ_INDEX (0x000002A0) | 1313 | #define CX2_RX_READ_INDEX (0x000002A0) |
1291 | 1314 | ||
1292 | #define CX2_TX_CMD_QUEUE_WRITE_INDEX (0x00000F80) | 1315 | #define CX2_TX_CMD_QUEUE_WRITE_INDEX (0x00000F80) |
@@ -1333,15 +1356,15 @@ do { if (ipw_debug_level & (level)) \ | |||
1333 | #define EEPROM_HW_VERSION (GET_EEPROM_ADDR(0x72,LSB)) /* 2 bytes */ | 1356 | #define EEPROM_HW_VERSION (GET_EEPROM_ADDR(0x72,LSB)) /* 2 bytes */ |
1334 | 1357 | ||
1335 | /* NIC type as found in the one byte EEPROM_NIC_TYPE offset*/ | 1358 | /* NIC type as found in the one byte EEPROM_NIC_TYPE offset*/ |
1336 | #define EEPROM_NIC_TYPE_STANDARD 0 | 1359 | #define EEPROM_NIC_TYPE_0 0 |
1337 | #define EEPROM_NIC_TYPE_DELL 1 | 1360 | #define EEPROM_NIC_TYPE_1 1 |
1338 | #define EEPROM_NIC_TYPE_FUJITSU 2 | 1361 | #define EEPROM_NIC_TYPE_2 2 |
1339 | #define EEPROM_NIC_TYPE_IBM 3 | 1362 | #define EEPROM_NIC_TYPE_3 3 |
1340 | #define EEPROM_NIC_TYPE_HP 4 | 1363 | #define EEPROM_NIC_TYPE_4 4 |
1341 | 1364 | ||
1342 | #define FW_MEM_REG_LOWER_BOUND 0x00300000 | 1365 | #define FW_MEM_REG_LOWER_BOUND 0x00300000 |
1343 | #define FW_MEM_REG_EEPROM_ACCESS (FW_MEM_REG_LOWER_BOUND + 0x40) | 1366 | #define FW_MEM_REG_EEPROM_ACCESS (FW_MEM_REG_LOWER_BOUND + 0x40) |
1344 | 1367 | #define CX2_EVENT_REG (FW_MEM_REG_LOWER_BOUND + 0x04) | |
1345 | #define EEPROM_BIT_SK (1<<0) | 1368 | #define EEPROM_BIT_SK (1<<0) |
1346 | #define EEPROM_BIT_CS (1<<1) | 1369 | #define EEPROM_BIT_CS (1<<1) |
1347 | #define EEPROM_BIT_DI (1<<2) | 1370 | #define EEPROM_BIT_DI (1<<2) |