diff options
author | Ron Rindjunsky <ron.rindjunsky@intel.com> | 2008-05-29 04:35:07 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-06-03 15:00:24 -0400 |
commit | 001caff0da8784989ef208af0f39d55ea07dfef5 (patch) | |
tree | 83a0e002e10c609d7fb0eedf2f7e61d5524051a0 /drivers/net/wireless/iwlwifi/iwl-commands.h | |
parent | fe9b6b720bd11c598417529755ac850a85070560 (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.h | 48 |
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 | */ |
1422 | struct agg_tx_status { | ||
1423 | __le16 status; | ||
1424 | __le16 sequence; | ||
1425 | } __attribute__ ((packed)); | ||
1426 | |||
1422 | struct iwl4965_tx_resp { | 1427 | struct 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 | ||
1456 | struct agg_tx_status { | ||
1457 | __le16 status; | ||
1458 | __le16 sequence; | ||
1459 | } __attribute__ ((packed)); | ||
1460 | |||
1461 | struct iwl4965_tx_resp_agg { | 1461 | struct 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 | ||
1475 | struct 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 | * |