projects
/
open-ath9k-htc-firmware.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #100 from RyDroid/editorconfig
[open-ath9k-htc-firmware.git]
/
target_firmware
/
wlan
/
if_owl.c
diff --git
a/target_firmware/wlan/if_owl.c
b/target_firmware/wlan/if_owl.c
index b66d2767e04c0043cf46fe4ccb05793bd5caa340..a25d8d316aed213e0c23ee63d3681ced7586dfe3 100755
(executable)
--- a/
target_firmware/wlan/if_owl.c
+++ b/
target_firmware/wlan/if_owl.c
@@
-57,6
+57,7
@@
#include "if_athrate.h"
#include "if_athvar.h"
#include "ah_desc.h"
#include "if_athrate.h"
#include "if_athvar.h"
#include "ah_desc.h"
+#include "ah_internal.h"
#define ath_tgt_free_skb adf_nbuf_free
#define ath_tgt_free_skb adf_nbuf_free
@@
-147,6
+148,8
@@
static void ath_tx_comp_cleanup(struct ath_softc_tgt *sc, struct ath_tx_buf *bf)
int ath_tgt_tx_add_to_aggr(struct ath_softc_tgt *sc,
struct ath_buf *bf,int datatype,
ath_atx_tid_t *tid, int is_burst);
int ath_tgt_tx_add_to_aggr(struct ath_softc_tgt *sc,
struct ath_buf *bf,int datatype,
ath_atx_tid_t *tid, int is_burst);
+int ath_tgt_tx_form_aggr(struct ath_softc_tgt *sc, ath_atx_tid_t *tid,
+ ath_tx_bufhead *bf_q);
struct ieee80211_frame *ATH_SKB_2_WH(adf_nbuf_t skb)
{
struct ieee80211_frame *ATH_SKB_2_WH(adf_nbuf_t skb)
{
@@
-556,6
+559,8
@@
void ath_tx_status_update(struct ath_softc_tgt *sc, struct ath_tx_buf *bf)
if (txs == NULL)
return;
if (txs == NULL)
return;
+ txs->txstatus[txs->cnt].ts_flags = 0;
+
txs->txstatus[txs->cnt].cookie = bf->bf_cookie;
txs->txstatus[txs->cnt].ts_rate = SM(bf->bf_endpt, ATH9K_HTC_TXSTAT_EPID);
txs->txstatus[txs->cnt].cookie = bf->bf_cookie;
txs->txstatus[txs->cnt].ts_rate = SM(bf->bf_endpt, ATH9K_HTC_TXSTAT_EPID);
@@
-895,7
+900,7
@@
static void ath_tgt_txq_add_ucast(struct ath_softc_tgt *sc, struct ath_tx_buf *b
} else {
*txq->axq_link = ATH_BUF_GET_DESC_PHY_ADDR(bf);
} else {
*txq->axq_link = ATH_BUF_GET_DESC_PHY_ADDR(bf);
- txe_val =
OS_REG_READ(ah, 0x
840);
+ txe_val =
ioread32_mac(0x0
840);
if (!(txe_val & (1<< txq->axq_qnum)))
ah->ah_setTxDP(ah, txq->axq_qnum, ATH_BUF_GET_DESC_PHY_ADDR(bf));
}
if (!(txe_val & (1<< txq->axq_qnum)))
ah->ah_setTxDP(ah, txq->axq_qnum, ATH_BUF_GET_DESC_PHY_ADDR(bf));
}
@@
-1021,13
+1026,15
@@
static void
ath_update_stats(struct ath_softc_tgt *sc, struct ath_tx_buf *bf)
{
struct ath_tx_desc *ds = bf->bf_desc;
ath_update_stats(struct ath_softc_tgt *sc, struct ath_tx_buf *bf)
{
struct ath_tx_desc *ds = bf->bf_desc;
+ struct ieee80211_frame *wh = ATH_SKB2_WH(bf->bf_skb);
u_int32_t sr, lr;
if (ds->ds_txstat.ts_status == 0) {
if (ds->ds_txstat.ts_rate & HAL_TXSTAT_ALTRATE)
sc->sc_tx_stats.ast_tx_altrate++;
} else {
u_int32_t sr, lr;
if (ds->ds_txstat.ts_status == 0) {
if (ds->ds_txstat.ts_rate & HAL_TXSTAT_ALTRATE)
sc->sc_tx_stats.ast_tx_altrate++;
} else {
- if (ds->ds_txstat.ts_status & HAL_TXERR_XRETRY)
+ if (ds->ds_txstat.ts_status & HAL_TXERR_XRETRY &&
+ !IEEE80211_IS_MULTICAST(wh->i_addr1))
sc->sc_tx_stats.ast_tx_xretries++;
if (ds->ds_txstat.ts_status & HAL_TXERR_FIFO)
sc->sc_tx_stats.ast_tx_fifoerr++;
sc->sc_tx_stats.ast_tx_xretries++;
if (ds->ds_txstat.ts_status & HAL_TXERR_FIFO)
sc->sc_tx_stats.ast_tx_fifoerr++;