aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-commands.h
diff options
context:
space:
mode:
authorRon Rindjunsky <ron.rindjunsky@intel.com>2008-05-29 04:35:07 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-06-03 15:00:24 -0400
commit001caff0da8784989ef208af0f39d55ea07dfef5 (patch)
tree83a0e002e10c609d7fb0eedf2f7e61d5524051a0 /drivers/net/wireless/iwlwifi/iwl-commands.h
parentfe9b6b720bd11c598417529755ac850a85070560 (diff)
iwlwifi: add iwl5000_tx_response structure
This patch adds iwl5000_tx_repsons structure. Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-commands.h')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-commands.h48
1 files changed, 43 insertions, 5 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h
index 6f62beb1e4bb..bad0e94e4e5d 100644
--- a/drivers/net/wireless/iwlwifi/iwl-commands.h
+++ b/drivers/net/wireless/iwlwifi/iwl-commands.h
@@ -1419,6 +1419,11 @@ enum {
1419 * within the sending station (this 4965), rather than whether it was 1419 * within the sending station (this 4965), rather than whether it was
1420 * received successfully by the destination station. 1420 * received successfully by the destination station.
1421 */ 1421 */
1422struct agg_tx_status {
1423 __le16 status;
1424 __le16 sequence;
1425} __attribute__ ((packed));
1426
1422struct iwl4965_tx_resp { 1427struct iwl4965_tx_resp {
1423 u8 frame_count; /* 1 no aggregation, >1 aggregation */ 1428 u8 frame_count; /* 1 no aggregation, >1 aggregation */
1424 u8 bt_kill_count; /* # blocked by bluetooth (unused for agg) */ 1429 u8 bt_kill_count; /* # blocked by bluetooth (unused for agg) */
@@ -1453,11 +1458,6 @@ struct iwl4965_tx_resp {
1453 __le32 status; /* TX status (for aggregation status of 1st frame) */ 1458 __le32 status; /* TX status (for aggregation status of 1st frame) */
1454} __attribute__ ((packed)); 1459} __attribute__ ((packed));
1455 1460
1456struct agg_tx_status {
1457 __le16 status;
1458 __le16 sequence;
1459} __attribute__ ((packed));
1460
1461struct iwl4965_tx_resp_agg { 1461struct iwl4965_tx_resp_agg {
1462 u8 frame_count; /* 1 no aggregation, >1 aggregation */ 1462 u8 frame_count; /* 1 no aggregation, >1 aggregation */
1463 u8 reserved1; 1463 u8 reserved1;
@@ -1472,6 +1472,44 @@ struct iwl4965_tx_resp_agg {
1472 /* of 1st frame) */ 1472 /* of 1st frame) */
1473} __attribute__ ((packed)); 1473} __attribute__ ((packed));
1474 1474
1475struct iwl5000_tx_resp {
1476 u8 frame_count; /* 1 no aggregation, >1 aggregation */
1477 u8 bt_kill_count; /* # blocked by bluetooth (unused for agg) */
1478 u8 failure_rts; /* # failures due to unsuccessful RTS */
1479 u8 failure_frame; /* # failures due to no ACK (unused for agg) */
1480
1481 /* For non-agg: Rate at which frame was successful.
1482 * For agg: Rate at which all frames were transmitted. */
1483 __le32 rate_n_flags; /* RATE_MCS_* */
1484
1485 /* For non-agg: RTS + CTS + frame tx attempts time + ACK.
1486 * For agg: RTS + CTS + aggregation tx time + block-ack time. */
1487 __le16 wireless_media_time; /* uSecs */
1488
1489 __le16 reserved;
1490 __le32 pa_power1; /* RF power amplifier measurement (not used) */
1491 __le32 pa_power2;
1492
1493 __le32 tfd_info;
1494 __le16 seq_ctl;
1495 __le16 byte_cnt;
1496 __le32 tlc_info;
1497 /*
1498 * For non-agg: frame status TX_STATUS_*
1499 * For agg: status of 1st frame, AGG_TX_STATE_*; other frame status
1500 * fields follow this one, up to frame_count.
1501 * Bit fields:
1502 * 11- 0: AGG_TX_STATE_* status code
1503 * 15-12: Retry count for 1st frame in aggregation (retries
1504 * occur if tx failed for this frame when it was a
1505 * member of a previous aggregation block). If rate
1506 * scaling is used, retry count indicates the rate
1507 * table entry used for all frames in the new agg.
1508 * 31-16: Sequence # for this frame's Tx cmd (not SSN!)
1509 */
1510 struct agg_tx_status status; /* TX status (in aggregation -
1511 * status of 1st frame) */
1512} __attribute__ ((packed));
1475/* 1513/*
1476 * REPLY_COMPRESSED_BA = 0xc5 (response only, not a command) 1514 * REPLY_COMPRESSED_BA = 0xc5 (response only, not a command)
1477 * 1515 *