ds_txstat
ds->ds_txstat.ts_seqnum = MS(ads->ds_txstatus9, AR_SeqNum);
ds->ds_txstat.ts_tstamp = ads->AR_SendTimestamp;
ds->ds_txstat.ts_status = 0;
ds->ds_txstat.ts_flags = 0;
ds->ds_txstat.ts_status |= ATH9K_TXERR_XRETRY;
ds->ds_txstat.ts_status |= ATH9K_TXERR_FILT;
ds->ds_txstat.ts_status |= ATH9K_TXERR_FIFO;
ds->ds_txstat.ts_status |= ATH9K_TXERR_XTXOP;
ds->ds_txstat.ts_status |= ATH9K_TXERR_TIMER_EXPIRED;
ds->ds_txstat.ts_flags |= ATH9K_TX_DESC_CFG_ERR;
ds->ds_txstat.ts_flags |= ATH9K_TX_DATA_UNDERRUN;
ds->ds_txstat.ts_flags |= ATH9K_TX_DELIM_UNDERRUN;
ds->ds_txstat.ts_flags |= ATH9K_TX_BA;
ds->ds_txstat.ba_low = ads->AR_BaBitmapLow;
ds->ds_txstat.ba_high = ads->AR_BaBitmapHigh;
ds->ds_txstat.ts_rateindex = MS(ads->ds_txstatus9, AR_FinalTxIdx);
switch (ds->ds_txstat.ts_rateindex) {
ds->ds_txstat.ts_ratecode = MS(ads->ds_ctl3, AR_XmitRate0);
ds->ds_txstat.ts_ratecode = MS(ads->ds_ctl3, AR_XmitRate1);
ds->ds_txstat.ts_ratecode = MS(ads->ds_ctl3, AR_XmitRate2);
ds->ds_txstat.ts_ratecode = MS(ads->ds_ctl3, AR_XmitRate3);
ds->ds_txstat.ts_rssi = MS(ads->ds_txstatus5, AR_TxRSSICombined);
ds->ds_txstat.ts_rssi_ctl0 = MS(ads->ds_txstatus0, AR_TxRSSIAnt00);
ds->ds_txstat.ts_rssi_ctl1 = MS(ads->ds_txstatus0, AR_TxRSSIAnt01);
ds->ds_txstat.ts_rssi_ctl2 = MS(ads->ds_txstatus0, AR_TxRSSIAnt02);
ds->ds_txstat.ts_rssi_ext0 = MS(ads->ds_txstatus5, AR_TxRSSIAnt10);
ds->ds_txstat.ts_rssi_ext1 = MS(ads->ds_txstatus5, AR_TxRSSIAnt11);
ds->ds_txstat.ts_rssi_ext2 = MS(ads->ds_txstatus5, AR_TxRSSIAnt12);
ds->ds_txstat.evm0 = ads->AR_TxEVM0;
ds->ds_txstat.evm1 = ads->AR_TxEVM1;
ds->ds_txstat.evm2 = ads->AR_TxEVM2;
ds->ds_txstat.ts_shortretry = MS(ads->ds_txstatus1, AR_RTSFailCnt);
ds->ds_txstat.ts_longretry = MS(ads->ds_txstatus1, AR_DataFailCnt);
ds->ds_txstat.ts_virtcol = MS(ads->ds_txstatus1, AR_VirtRetryCnt);
ds->ds_txstat.ts_antenna = 1;
if (ds->ds_txstat.ts_flags == ATH9K_TX_SW_ABORTED)
const struct ath_tx_status *ts = &ds->ds_txstat;
if ((ds->ds_txstat.ts_status & ATH9K_TXERR_FILT) == 0 &&
(void) memcpy(&tx_info_priv->tx, &ds->ds_txstat,
ts = &ds->ds_txstat;
txok = (ds->ds_txstat.ts_status == 0);
bf->bf_retries = ds->ds_txstat.ts_longretry;
if (ds->ds_txstat.ts_status & ATH9K_TXERR_XRETRY)
ds->ds_txstat.ts_flags != ATH9K_TX_SW_ABORTED) {
ts = &bf->bf_status.ds_txstat;
const struct ath_tx_status *ts = &bf->bf_status.ds_txstat;