mirror of https://gitee.com/openkylin/linux.git
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>
This commit is contained in:
parent
fe9b6b720b
commit
001caff0da
|
@ -1419,6 +1419,11 @@ enum {
|
||||||
* within the sending station (this 4965), rather than whether it was
|
* within the sending station (this 4965), rather than whether it was
|
||||||
* received successfully by the destination station.
|
* received successfully by the destination station.
|
||||||
*/
|
*/
|
||||||
|
struct agg_tx_status {
|
||||||
|
__le16 status;
|
||||||
|
__le16 sequence;
|
||||||
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
struct iwl4965_tx_resp {
|
struct iwl4965_tx_resp {
|
||||||
u8 frame_count; /* 1 no aggregation, >1 aggregation */
|
u8 frame_count; /* 1 no aggregation, >1 aggregation */
|
||||||
u8 bt_kill_count; /* # blocked by bluetooth (unused for agg) */
|
u8 bt_kill_count; /* # blocked by bluetooth (unused for agg) */
|
||||||
|
@ -1453,11 +1458,6 @@ struct iwl4965_tx_resp {
|
||||||
__le32 status; /* TX status (for aggregation status of 1st frame) */
|
__le32 status; /* TX status (for aggregation status of 1st frame) */
|
||||||
} __attribute__ ((packed));
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
struct agg_tx_status {
|
|
||||||
__le16 status;
|
|
||||||
__le16 sequence;
|
|
||||||
} __attribute__ ((packed));
|
|
||||||
|
|
||||||
struct iwl4965_tx_resp_agg {
|
struct iwl4965_tx_resp_agg {
|
||||||
u8 frame_count; /* 1 no aggregation, >1 aggregation */
|
u8 frame_count; /* 1 no aggregation, >1 aggregation */
|
||||||
u8 reserved1;
|
u8 reserved1;
|
||||||
|
@ -1472,6 +1472,44 @@ struct iwl4965_tx_resp_agg {
|
||||||
/* of 1st frame) */
|
/* of 1st frame) */
|
||||||
} __attribute__ ((packed));
|
} __attribute__ ((packed));
|
||||||
|
|
||||||
|
struct iwl5000_tx_resp {
|
||||||
|
u8 frame_count; /* 1 no aggregation, >1 aggregation */
|
||||||
|
u8 bt_kill_count; /* # blocked by bluetooth (unused for agg) */
|
||||||
|
u8 failure_rts; /* # failures due to unsuccessful RTS */
|
||||||
|
u8 failure_frame; /* # failures due to no ACK (unused for agg) */
|
||||||
|
|
||||||
|
/* For non-agg: Rate at which frame was successful.
|
||||||
|
* For agg: Rate at which all frames were transmitted. */
|
||||||
|
__le32 rate_n_flags; /* RATE_MCS_* */
|
||||||
|
|
||||||
|
/* For non-agg: RTS + CTS + frame tx attempts time + ACK.
|
||||||
|
* For agg: RTS + CTS + aggregation tx time + block-ack time. */
|
||||||
|
__le16 wireless_media_time; /* uSecs */
|
||||||
|
|
||||||
|
__le16 reserved;
|
||||||
|
__le32 pa_power1; /* RF power amplifier measurement (not used) */
|
||||||
|
__le32 pa_power2;
|
||||||
|
|
||||||
|
__le32 tfd_info;
|
||||||
|
__le16 seq_ctl;
|
||||||
|
__le16 byte_cnt;
|
||||||
|
__le32 tlc_info;
|
||||||
|
/*
|
||||||
|
* For non-agg: frame status TX_STATUS_*
|
||||||
|
* For agg: status of 1st frame, AGG_TX_STATE_*; other frame status
|
||||||
|
* fields follow this one, up to frame_count.
|
||||||
|
* Bit fields:
|
||||||
|
* 11- 0: AGG_TX_STATE_* status code
|
||||||
|
* 15-12: Retry count for 1st frame in aggregation (retries
|
||||||
|
* occur if tx failed for this frame when it was a
|
||||||
|
* member of a previous aggregation block). If rate
|
||||||
|
* scaling is used, retry count indicates the rate
|
||||||
|
* table entry used for all frames in the new agg.
|
||||||
|
* 31-16: Sequence # for this frame's Tx cmd (not SSN!)
|
||||||
|
*/
|
||||||
|
struct agg_tx_status status; /* TX status (in aggregation -
|
||||||
|
* status of 1st frame) */
|
||||||
|
} __attribute__ ((packed));
|
||||||
/*
|
/*
|
||||||
* REPLY_COMPRESSED_BA = 0xc5 (response only, not a command)
|
* REPLY_COMPRESSED_BA = 0xc5 (response only, not a command)
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue