OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2008-2009 Atheros Communications Inc. | 2 * Copyright (c) 2008-2009 Atheros Communications Inc. |
3 * | 3 * |
4 * Permission to use, copy, modify, and/or distribute this software for any | 4 * Permission to use, copy, modify, and/or distribute this software for any |
5 * purpose with or without fee is hereby granted, provided that the above | 5 * purpose with or without fee is hereby granted, provided that the above |
6 * copyright notice and this permission notice appear in all copies. | 6 * copyright notice and this permission notice appear in all copies. |
7 * | 7 * |
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 if ((ads->ds_txstatus9 & AR_TxDone) == 0) | 222 if ((ads->ds_txstatus9 & AR_TxDone) == 0) |
223 return -EINPROGRESS; | 223 return -EINPROGRESS; |
224 | 224 |
225 ts->ts_seqnum = MS(ads->ds_txstatus9, AR_SeqNum); | 225 ts->ts_seqnum = MS(ads->ds_txstatus9, AR_SeqNum); |
226 ts->ts_tstamp = ads->AR_SendTimestamp; | 226 ts->ts_tstamp = ads->AR_SendTimestamp; |
227 ts->ts_status = 0; | 227 ts->ts_status = 0; |
228 ts->ts_flags = 0; | 228 ts->ts_flags = 0; |
229 | 229 |
230 if (ads->ds_txstatus1 & AR_FrmXmitOK) | 230 if (ads->ds_txstatus1 & AR_FrmXmitOK) |
231 ts->ts_status |= ATH9K_TX_ACKED; | 231 ts->ts_status |= ATH9K_TX_ACKED; |
232 » if (ads->ds_txstatus1 & AR_ExcessiveRetries) | 232 » else { |
233 » » ts->ts_status |= ATH9K_TXERR_XRETRY; | 233 » » if (ads->ds_txstatus1 & AR_ExcessiveRetries) |
234 » if (ads->ds_txstatus1 & AR_Filtered) | 234 » » » ts->ts_status |= ATH9K_TXERR_XRETRY; |
235 » » ts->ts_status |= ATH9K_TXERR_FILT; | 235 » » if (ads->ds_txstatus1 & AR_Filtered) |
236 » if (ads->ds_txstatus1 & AR_FIFOUnderrun) { | 236 » » » ts->ts_status |= ATH9K_TXERR_FILT; |
237 » » ts->ts_status |= ATH9K_TXERR_FIFO; | 237 » » if (ads->ds_txstatus1 & AR_FIFOUnderrun) { |
238 » » ath9k_hw_updatetxtriglevel(ah, true); | 238 » » » ts->ts_status |= ATH9K_TXERR_FIFO; |
| 239 » » » ath9k_hw_updatetxtriglevel(ah, true); |
| 240 » » } |
239 } | 241 } |
240 if (ads->ds_txstatus9 & AR_TxOpExceeded) | 242 if (ads->ds_txstatus9 & AR_TxOpExceeded) |
241 ts->ts_status |= ATH9K_TXERR_XTXOP; | 243 ts->ts_status |= ATH9K_TXERR_XTXOP; |
242 if (ads->ds_txstatus1 & AR_TxTimerExpired) | 244 if (ads->ds_txstatus1 & AR_TxTimerExpired) |
243 ts->ts_status |= ATH9K_TXERR_TIMER_EXPIRED; | 245 ts->ts_status |= ATH9K_TXERR_TIMER_EXPIRED; |
244 | 246 |
245 if (ads->ds_txstatus1 & AR_DescCfgErr) | 247 if (ads->ds_txstatus1 & AR_DescCfgErr) |
246 ts->ts_flags |= ATH9K_TX_DESC_CFG_ERR; | 248 ts->ts_flags |= ATH9K_TX_DESC_CFG_ERR; |
247 if (ads->ds_txstatus1 & AR_TxDataUnderrun) { | 249 if (ads->ds_txstatus1 & AR_TxDataUnderrun) { |
248 ts->ts_flags |= ATH9K_TX_DATA_UNDERRUN; | 250 ts->ts_flags |= ATH9K_TX_DATA_UNDERRUN; |
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
472 ops->proc_txdesc = ar9002_hw_proc_txdesc; | 474 ops->proc_txdesc = ar9002_hw_proc_txdesc; |
473 ops->set11n_txdesc = ar9002_hw_set11n_txdesc; | 475 ops->set11n_txdesc = ar9002_hw_set11n_txdesc; |
474 ops->set11n_ratescenario = ar9002_hw_set11n_ratescenario; | 476 ops->set11n_ratescenario = ar9002_hw_set11n_ratescenario; |
475 ops->set11n_aggr_first = ar9002_hw_set11n_aggr_first; | 477 ops->set11n_aggr_first = ar9002_hw_set11n_aggr_first; |
476 ops->set11n_aggr_middle = ar9002_hw_set11n_aggr_middle; | 478 ops->set11n_aggr_middle = ar9002_hw_set11n_aggr_middle; |
477 ops->set11n_aggr_last = ar9002_hw_set11n_aggr_last; | 479 ops->set11n_aggr_last = ar9002_hw_set11n_aggr_last; |
478 ops->clr11n_aggr = ar9002_hw_clr11n_aggr; | 480 ops->clr11n_aggr = ar9002_hw_clr11n_aggr; |
479 ops->set11n_burstduration = ar9002_hw_set11n_burstduration; | 481 ops->set11n_burstduration = ar9002_hw_set11n_burstduration; |
480 ops->set11n_virtualmorefrag = ar9002_hw_set11n_virtualmorefrag; | 482 ops->set11n_virtualmorefrag = ar9002_hw_set11n_virtualmorefrag; |
481 } | 483 } |
OLD | NEW |