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
build fix: use ath_tx_buf in ath_update_stats
[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 39a48c2db29f09b05bfda9852b84c2bf0d1ec8fa..08c4b96d6e3ffb13b40f2e02817af017ebe5d89a 100755
(executable)
--- a/
target_firmware/wlan/if_owl.c
+++ b/
target_firmware/wlan/if_owl.c
@@
-106,12
+106,10
@@
static a_int32_t ath_tgt_txbuf_setup(struct ath_softc_tgt *sc,
struct ath_tx_buf *bf, ath_data_hdr_t *dh);
static void ath_tx_freebuf(struct ath_softc_tgt *sc, struct ath_tx_buf *bf);
static void ath_tx_uc_comp(struct ath_softc_tgt *sc, struct ath_tx_buf *bf);
struct ath_tx_buf *bf, ath_data_hdr_t *dh);
static void ath_tx_freebuf(struct ath_softc_tgt *sc, struct ath_tx_buf *bf);
static void ath_tx_uc_comp(struct ath_softc_tgt *sc, struct ath_tx_buf *bf);
-static void ath_update_stats(struct ath_softc_tgt *sc, struct ath_buf *bf);
+static void ath_update_stats(struct ath_softc_tgt *sc, struct ath_
tx_
buf *bf);
void adf_print_buf(adf_nbuf_t buf);
static void ath_tgt_tx_enqueue(struct ath_txq *txq, struct ath_atx_tid *tid);
void adf_print_buf(adf_nbuf_t buf);
static void ath_tgt_tx_enqueue(struct ath_txq *txq, struct ath_atx_tid *tid);
-struct ath_buf * ath_tgt_tx_prepare(struct ath_softc_tgt *sc,
- adf_nbuf_t skb, ath_data_hdr_t *dh);
void ath_tgt_tx_comp_aggr(struct ath_softc_tgt *sc, struct ath_tx_buf *bf);
struct ieee80211_frame *ATH_SKB_2_WH(adf_nbuf_t skb);
void ath_tgt_tx_comp_aggr(struct ath_softc_tgt *sc, struct ath_tx_buf *bf);
struct ieee80211_frame *ATH_SKB_2_WH(adf_nbuf_t skb);
@@
-120,12
+118,9
@@
void ath_tgt_tx_send_normal(struct ath_softc_tgt *sc, struct ath_tx_buf *bf);
static void ath_tgt_tx_sched_normal(struct ath_softc_tgt *sc, ath_atx_tid_t *tid);
static void ath_tgt_tx_sched_aggr(struct ath_softc_tgt *sc, ath_atx_tid_t *tid);
static void ath_tgt_tx_sched_normal(struct ath_softc_tgt *sc, ath_atx_tid_t *tid);
static void ath_tgt_tx_sched_aggr(struct ath_softc_tgt *sc, ath_atx_tid_t *tid);
-static struct ath_node_target * owltarget_findnode(struct tx_frame_heade *dh,
- struct ath_softc_tgt *sc,
- struct adf_nbuf_t *skb);
extern a_int32_t ath_chainmask_sel_logic(void *);
extern a_int32_t ath_chainmask_sel_logic(void *);
-static a_int32_t ath_get_pktlen(struct ath_buf *bf, a_int32_t hdrlen);
-static void ath_tgt_txq_schedule(struct ath_softc *sc, struct ath_txq *txq);
+static a_int32_t ath_get_pktlen(struct ath_
tx_
buf *bf, a_int32_t hdrlen);
+static void ath_tgt_txq_schedule(struct ath_softc
_tgt
*sc, struct ath_txq *txq);
typedef void (*ath_ft_set_atype_t)(struct ath_softc_tgt *sc, struct ath_buf *bf);
typedef void (*ath_ft_set_atype_t)(struct ath_softc_tgt *sc, struct ath_buf *bf);
@@
-225,7
+220,7
@@
static a_uint32_t ath_pkt_duration(struct ath_softc_tgt *sc,
return duration;
}
return duration;
}
-static void ath_dma_map(struct ath_softc_tgt *sc, struct ath_buf *bf)
+static void ath_dma_map(struct ath_softc_tgt *sc, struct ath_
tx_
buf *bf)
{
adf_nbuf_t skb = bf->bf_skb;
{
adf_nbuf_t skb = bf->bf_skb;
@@
-233,7
+228,7
@@
static void ath_dma_map(struct ath_softc_tgt *sc, struct ath_buf *bf)
adf_nbuf_map(sc->sc_dev, bf->bf_dmamap, skb, ADF_OS_DMA_TO_DEVICE);
}
adf_nbuf_map(sc->sc_dev, bf->bf_dmamap, skb, ADF_OS_DMA_TO_DEVICE);
}
-static void ath_dma_unmap(struct ath_softc_tgt *sc, struct ath_buf *bf)
+static void ath_dma_unmap(struct ath_softc_tgt *sc, struct ath_
tx_
buf *bf)
{
adf_nbuf_t skb = bf->bf_skb;
{
adf_nbuf_t skb = bf->bf_skb;
@@
-243,7
+238,7
@@
static void ath_dma_unmap(struct ath_softc_tgt *sc, struct ath_buf *bf)
static void ath_filltxdesc(struct ath_softc_tgt *sc, struct ath_tx_buf *bf)
{
static void ath_filltxdesc(struct ath_softc_tgt *sc, struct ath_tx_buf *bf)
{
- struct ath_desc *ds0, *ds = bf->bf_desc;
+ struct ath_
tx_
desc *ds0, *ds = bf->bf_desc;
a_uint8_t i;
ds0 = ds;
a_uint8_t i;
ds0 = ds;
@@
-269,10
+264,7
@@
static void ath_filltxdesc(struct ath_softc_tgt *sc, struct ath_tx_buf *bf)
static void ath_tx_tgt_setds(struct ath_softc_tgt *sc, struct ath_tx_buf *bf)
{
static void ath_tx_tgt_setds(struct ath_softc_tgt *sc, struct ath_tx_buf *bf)
{
- struct ath_desc *ds0, *ds = bf->bf_desc;
- adf_nbuf_t skb;
- adf_nbuf_queue_t skbhead;
- a_int32_t i, dscnt = 0;
+ struct ath_desc *ds = bf->bf_desc;
switch (bf->bf_protmode) {
case IEEE80211_PROT_RTSCTS:
switch (bf->bf_protmode) {
case IEEE80211_PROT_RTSCTS:
@@
-296,7
+288,7
@@
static void ath_tx_tgt_setds(struct ath_softc_tgt *sc, struct ath_tx_buf *bf)
ath_filltxdesc(sc, bf);
}
ath_filltxdesc(sc, bf);
}
-static struct ath_buf *ath_buf_toggle(struct ath_softc_tgt *sc,
+static struct ath_
tx_
buf *ath_buf_toggle(struct ath_softc_tgt *sc,
struct ath_tx_buf *bf,
a_uint8_t retry)
{
struct ath_tx_buf *bf,
a_uint8_t retry)
{
@@
-380,7
+372,6
@@
static void ath_buf_set_rate(struct ath_softc_tgt *sc, struct ath_tx_buf *bf)
HAL_11N_RATE_SERIES series[4];
a_int32_t i, flags;
a_uint8_t rix, cix, rtsctsrate;
HAL_11N_RATE_SERIES series[4];
a_int32_t i, flags;
a_uint8_t rix, cix, rtsctsrate;
- a_uint32_t aggr_limit_with_rts;
a_uint32_t ctsduration = 0;
a_int32_t prot_mode = AH_FALSE;
a_uint32_t ctsduration = 0;
a_int32_t prot_mode = AH_FALSE;
@@
-408,13
+399,6
@@
static void ath_buf_set_rate(struct ath_softc_tgt *sc, struct ath_tx_buf *bf)
}
}
}
}
- ath_hal_getrtsaggrlimit(sc->sc_ah, &aggr_limit_with_rts);
-
- if (bf->bf_isaggr && aggr_limit_with_rts &&
- bf->bf_al > aggr_limit_with_rts) {
- flags &= ~(HAL_TXDESC_RTSENA);
- }
-
adf_os_mem_set(series, 0, sizeof(HAL_11N_RATE_SERIES) * 4);
for (i = 0; i < 4; i++) {
adf_os_mem_set(series, 0, sizeof(HAL_11N_RATE_SERIES) * 4);
for (i = 0; i < 4; i++) {
@@
-521,7
+505,7
@@
static void owl_tgt_tid_cleanup(struct ath_softc_tgt *sc,
void owl_tgt_node_init(struct ath_node_target * an)
{
struct ath_atx_tid *tid;
void owl_tgt_node_init(struct ath_node_target * an)
{
struct ath_atx_tid *tid;
- int tidno
, i
;
+ int tidno;
for (tidno = 0, tid = &an->tid[tidno]; tidno < WME_NUM_TID;tidno++, tid++) {
tid->tidno = tidno;
for (tidno = 0, tid = &an->tid[tidno]; tidno < WME_NUM_TID;tidno++, tid++) {
tid->tidno = tidno;
@@
-546,7
+530,7
@@
void ath_tx_status_clear(struct ath_softc_tgt *sc)
}
}
}
}
-st
ruct WMI_TXSTATUS_EVENT*
ath_tx_status_get(struct ath_softc_tgt *sc)
+st
atic WMI_TXSTATUS_EVENT *
ath_tx_status_get(struct ath_softc_tgt *sc)
{
WMI_TXSTATUS_EVENT *txs = NULL;
int i;
{
WMI_TXSTATUS_EVENT *txs = NULL;
int i;
@@
-643,9
+627,7
@@
void owl_tgt_tx_tasklet(TQUEUE_ARG data)
{
struct ath_softc_tgt *sc = (struct ath_softc_tgt *)data;
a_int32_t i;
{
struct ath_softc_tgt *sc = (struct ath_softc_tgt *)data;
a_int32_t i;
- a_uint32_t qcumask = ((1 << HAL_NUM_TX_QUEUES) - 1);
struct ath_txq *txq;
struct ath_txq *txq;
- ath_data_hdr_t *dh;
ath_tx_status_clear(sc);
ath_tx_status_clear(sc);
@@
-741,7
+723,6
@@
static void ath_tgt_tx_comp_normal(struct ath_softc_tgt *sc,
struct ath_tx_buf *bf)
{
struct ath_node_target *an = ATH_NODE_TARGET(bf->bf_node);
struct ath_tx_buf *bf)
{
struct ath_node_target *an = ATH_NODE_TARGET(bf->bf_node);
- struct ath_desc *ds = bf->bf_lastds;
ath_atx_tid_t *tid = ATH_AN_2_TID(an, bf->bf_tidno);
if (tid->flag & TID_CLEANUP_INPROGRES) {
ath_atx_tid_t *tid = ATH_AN_2_TID(an, bf->bf_tidno);
if (tid->flag & TID_CLEANUP_INPROGRES) {
@@
-759,7
+740,6
@@
static struct ieee80211_node_target * ath_tgt_find_node(struct ath_softc_tgt *sc
a_int32_t node_index)
{
struct ath_node_target *an;
a_int32_t node_index)
{
struct ath_node_target *an;
- a_int32_t i;
struct ieee80211_node_target *ni;
if (node_index > TARGET_NODE_MAX)
struct ieee80211_node_target *ni;
if (node_index > TARGET_NODE_MAX)
@@
-778,7
+758,7
@@
static struct ieee80211_node_target * ath_tgt_find_node(struct ath_softc_tgt *sc
return NULL;
}
return NULL;
}
-static struct ath_
buf* ath
_buf_alloc(struct ath_softc_tgt *sc)
+static struct ath_
tx_buf* ath_tx
_buf_alloc(struct ath_softc_tgt *sc)
{
struct ath_tx_buf *bf = NULL;
{
struct ath_tx_buf *bf = NULL;
@@
-793,13
+773,11
@@
static struct ath_buf* ath_buf_alloc(struct ath_softc_tgt *sc)
return bf;
}
return bf;
}
-struct ath_buf* ath_tgt_tx_prepare(struct ath_softc_tgt *sc,
+struct ath_
tx_
buf* ath_tgt_tx_prepare(struct ath_softc_tgt *sc,
adf_nbuf_t skb, ath_data_hdr_t *dh)
{
struct ath_tx_buf *bf;
adf_nbuf_t skb, ath_data_hdr_t *dh)
{
struct ath_tx_buf *bf;
- struct ath_txq *txq;
struct ieee80211_node_target *ni;
struct ieee80211_node_target *ni;
- a_uint32_t flags = adf_os_ntohl(dh->flags);
struct ath_atx_tid *tid;
ni = ath_tgt_find_node(sc, dh->ni_index);
struct ath_atx_tid *tid;
ni = ath_tgt_find_node(sc, dh->ni_index);
@@
-812,7
+790,7
@@
struct ath_buf* ath_tgt_tx_prepare(struct ath_softc_tgt *sc,
return NULL;
}
return NULL;
}
- bf = ath_buf_alloc(sc);
+ bf = ath_
tx_
buf_alloc(sc);
if (!bf) {
__stats(sc, tx_nobufs);
return NULL;
if (!bf) {
__stats(sc, tx_nobufs);
return NULL;
@@
-823,7
+801,7
@@
struct ath_buf* ath_tgt_tx_prepare(struct ath_softc_tgt *sc,
bf->bf_keytype = dh->keytype;
bf->bf_keyix = dh->keyix;
bf->bf_protmode = dh->flags & (IEEE80211_PROT_RTSCTS | IEEE80211_PROT_CTSONLY);
bf->bf_keytype = dh->keytype;
bf->bf_keyix = dh->keyix;
bf->bf_protmode = dh->flags & (IEEE80211_PROT_RTSCTS | IEEE80211_PROT_CTSONLY);
- bf->bf_node =
(struct ath_node_target *)
ni;
+ bf->bf_node = ni;
adf_nbuf_queue_add(&bf->bf_skbhead, skb);
skb = adf_nbuf_queue_first(&(bf->bf_skbhead));
adf_nbuf_queue_add(&bf->bf_skbhead, skb);
skb = adf_nbuf_queue_first(&(bf->bf_skbhead));
@@
-868,8
+846,6
@@
static a_int32_t ath_key_setup(struct ieee80211_node_target *ni,
struct ath_tx_buf *bf)
{
struct ieee80211_frame *wh = ATH_SKB_2_WH(bf->bf_skb);
struct ath_tx_buf *bf)
{
struct ieee80211_frame *wh = ATH_SKB_2_WH(bf->bf_skb);
- const struct ieee80211_cipher *cip;
- struct ieee80211_key *k;
if (!(wh->i_fc[1] & IEEE80211_FC1_WEP)) {
bf->bf_keytype = HAL_KEY_TYPE_CLEAR;
if (!(wh->i_fc[1] & IEEE80211_FC1_WEP)) {
bf->bf_keytype = HAL_KEY_TYPE_CLEAR;
@@
-902,9
+878,7
@@
static void ath_tgt_txq_add_ucast(struct ath_softc_tgt *sc, struct ath_tx_buf *b
{
struct ath_hal *ah = sc->sc_ah;
struct ath_txq *txq;
{
struct ath_hal *ah = sc->sc_ah;
struct ath_txq *txq;
- struct ath_node_target *an;
HAL_STATUS status;
HAL_STATUS status;
- static a_int32_t count = 0,i;
volatile a_int32_t txe_val;
adf_os_assert(bf);
volatile a_int32_t txe_val;
adf_os_assert(bf);
@@
-964,7
+938,7
@@
static a_int32_t ath_tgt_txbuf_setup(struct ath_softc_tgt *sc,
}
static a_int32_t
}
static a_int32_t
-ath_get_pktlen(struct ath_buf *bf, a_int32_t hdrlen)
+ath_get_pktlen(struct ath_
tx_
buf *bf, a_int32_t hdrlen)
{
adf_nbuf_t skb = bf->bf_skb;
a_int32_t pktlen;
{
adf_nbuf_t skb = bf->bf_skb;
a_int32_t pktlen;
@@
-994,14
+968,14
@@
ath_tgt_tx_send_normal(struct ath_softc_tgt *sc, struct ath_tx_buf *bf)
ath_tgt_rate_findrate(sc, an, shortPreamble,
0, 0, 0, 0, 0,
rcs, &isProbe);
ath_tgt_rate_findrate(sc, an, shortPreamble,
0, 0, 0, 0, 0,
rcs, &isProbe);
- memcpy(bf->bf_rcs, rcs, sizeof(rcs));
+
ath_hal_
memcpy(bf->bf_rcs, rcs, sizeof(rcs));
} else {
mrcs[1].tries = mrcs[2].tries = mrcs[3].tries = 0;
mrcs[1].rix = mrcs[2].rix = mrcs[3].rix = 0;
mrcs[0].rix = 0;
mrcs[0].tries = 1;
mrcs[0].flags = 0;
} else {
mrcs[1].tries = mrcs[2].tries = mrcs[3].tries = 0;
mrcs[1].rix = mrcs[2].rix = mrcs[3].rix = 0;
mrcs[0].rix = 0;
mrcs[0].tries = 1;
mrcs[0].flags = 0;
- memcpy(bf->bf_rcs, mrcs, sizeof(mrcs));
+
ath_hal_
memcpy(bf->bf_rcs, mrcs, sizeof(mrcs));
}
ath_buf_set_rate(sc, bf);
}
ath_buf_set_rate(sc, bf);
@@
-1046,13
+1020,10
@@
ath_tx_uc_comp(struct ath_softc_tgt *sc, struct ath_tx_buf *bf)
}
static void
}
static void
-ath_update_stats(struct ath_softc_tgt *sc, struct ath_buf *bf)
+ath_update_stats(struct ath_softc_tgt *sc, struct ath_
tx_
buf *bf)
{
{
- struct ieee80211_node_target *ni = bf->bf_node;
struct ath_tx_desc *ds = bf->bf_desc;
struct ath_tx_desc *ds = bf->bf_desc;
- struct ath_node_target *an = ATH_NODE_TARGET(ni);
u_int32_t sr, lr;
u_int32_t sr, lr;
- struct ieee80211_cb *cb;
if (ds->ds_txstat.ts_status == 0) {
if (ds->ds_txstat.ts_rate & HAL_TXSTAT_ALTRATE)
if (ds->ds_txstat.ts_status == 0) {
if (ds->ds_txstat.ts_rate & HAL_TXSTAT_ALTRATE)
@@
-1082,9
+1053,9
@@
ath_tgt_send_mgt(struct ath_softc_tgt *sc,adf_nbuf_t hdr_buf, adf_nbuf_t skb,
struct ath_vap_target *avp;
struct ath_hal *ah = sc->sc_ah;
a_uint8_t rix, txrate, ctsrate, cix = 0xff, *data;
struct ath_vap_target *avp;
struct ath_hal *ah = sc->sc_ah;
a_uint8_t rix, txrate, ctsrate, cix = 0xff, *data;
- a_uint32_t ivlen = 0, icvlen = 0, subtype, flags, ctsduration
, fval
;
+ a_uint32_t ivlen = 0, icvlen = 0, subtype, flags, ctsduration;
a_int32_t i, iswep, ismcast, hdrlen, pktlen, try0, len;
a_int32_t i, iswep, ismcast, hdrlen, pktlen, try0, len;
- struct ath_desc *ds=NULL
, *ds0=NULL
;
+ struct ath_desc *ds=NULL;
struct ath_txq *txq=NULL;
struct ath_tx_buf *bf;
HAL_PKT_TYPE atype;
struct ath_txq *txq=NULL;
struct ath_tx_buf *bf;
HAL_PKT_TYPE atype;
@@
-1094,7
+1065,6
@@
ath_tgt_send_mgt(struct ath_softc_tgt *sc,adf_nbuf_t hdr_buf, adf_nbuf_t skb,
struct ath_rc_series rcs[4];
HAL_11N_RATE_SERIES series[4];
ath_mgt_hdr_t *mh;
struct ath_rc_series rcs[4];
HAL_11N_RATE_SERIES series[4];
ath_mgt_hdr_t *mh;
- struct ieee80211com_target *ic = &sc->sc_ic;
a_int8_t keyix;
if (!hdr_buf) {
a_int8_t keyix;
if (!hdr_buf) {
@@
-1297,9
+1267,6
@@
void ath_tgt_handle_normal(struct ath_softc_tgt *sc, struct ath_tx_buf *bf)
{
ath_atx_tid_t *tid;
struct ath_node_target *an;
{
ath_atx_tid_t *tid;
struct ath_node_target *an;
- struct ath_desc *ds;
- struct ath_txq *txq = bf->bf_txq;
- a_bool_t queue_frame;
an = (struct ath_node_target *)bf->bf_node;
adf_os_assert(an);
an = (struct ath_node_target *)bf->bf_node;
adf_os_assert(an);
@@
-1326,14
+1293,10
@@
ath_tgt_tx_enqueue(struct ath_txq *txq, struct ath_atx_tid *tid)
}
static void
}
static void
-ath_tgt_txq_schedule(struct ath_softc *sc, struct ath_txq *txq)
+ath_tgt_txq_schedule(struct ath_softc
_tgt
*sc, struct ath_txq *txq)
{
struct ath_atx_tid *tid;
u_int8_t bdone;
{
struct ath_atx_tid *tid;
u_int8_t bdone;
- HAL_STATUS status;
- u_int8_t smps_mode;
- struct ieee80211_node *ieee_node;
- u_int32_t aggr_limit_with_rts;
bdone = AH_FALSE;
bdone = AH_FALSE;
@@
-1367,7
+1330,6
@@
ath_tgt_handle_aggr(struct ath_softc_tgt *sc, struct ath_tx_buf *bf)
{
ath_atx_tid_t *tid;
struct ath_node_target *an;
{
ath_atx_tid_t *tid;
struct ath_node_target *an;
- struct ath_desc *ds;
struct ath_txq *txq = bf->bf_txq;
a_bool_t queue_frame, within_baw;
struct ath_txq *txq = bf->bf_txq;
a_bool_t queue_frame, within_baw;