ath9k_hw: Move code which populates ds_data to ath9k_hw
Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Родитель
162c3be378
Коммит
3f3a1c8031
|
@ -93,8 +93,6 @@ static void ath_beacon_setup(struct ath_softc *sc, struct ath_vif *avp,
|
||||||
antenna = ((sc->beacon.ast_be_xmit / sc->nbcnvifs) & 1 ? 2 : 1);
|
antenna = ((sc->beacon.ast_be_xmit / sc->nbcnvifs) & 1 ? 2 : 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
ds->ds_data = bf->bf_buf_addr;
|
|
||||||
|
|
||||||
sband = &sc->sbands[common->hw->conf.channel->band];
|
sband = &sc->sbands[common->hw->conf.channel->band];
|
||||||
rate = sband->bitrates[rateidx].hw_value;
|
rate = sband->bitrates[rateidx].hw_value;
|
||||||
if (sc->sc_flags & SC_OP_PREAMBLE_SHORT)
|
if (sc->sc_flags & SC_OP_PREAMBLE_SHORT)
|
||||||
|
@ -109,7 +107,7 @@ static void ath_beacon_setup(struct ath_softc *sc, struct ath_vif *avp,
|
||||||
|
|
||||||
/* NB: beacon's BufLen must be a multiple of 4 bytes */
|
/* NB: beacon's BufLen must be a multiple of 4 bytes */
|
||||||
ath9k_hw_filltxdesc(ah, ds, roundup(skb->len, 4),
|
ath9k_hw_filltxdesc(ah, ds, roundup(skb->len, 4),
|
||||||
true, true, ds);
|
true, true, ds, bf->bf_buf_addr);
|
||||||
|
|
||||||
memset(series, 0, sizeof(struct ath9k_11n_rate_series) * 4);
|
memset(series, 0, sizeof(struct ath9k_11n_rate_series) * 4);
|
||||||
series[0].Tries = 1;
|
series[0].Tries = 1;
|
||||||
|
|
|
@ -220,10 +220,13 @@ EXPORT_SYMBOL(ath9k_hw_stoptxdma);
|
||||||
|
|
||||||
void ath9k_hw_filltxdesc(struct ath_hw *ah, struct ath_desc *ds,
|
void ath9k_hw_filltxdesc(struct ath_hw *ah, struct ath_desc *ds,
|
||||||
u32 segLen, bool firstSeg,
|
u32 segLen, bool firstSeg,
|
||||||
bool lastSeg, const struct ath_desc *ds0)
|
bool lastSeg, const struct ath_desc *ds0,
|
||||||
|
dma_addr_t buf_addr)
|
||||||
{
|
{
|
||||||
struct ar5416_desc *ads = AR5416DESC(ds);
|
struct ar5416_desc *ads = AR5416DESC(ds);
|
||||||
|
|
||||||
|
ads->ds_data = buf_addr;
|
||||||
|
|
||||||
if (firstSeg) {
|
if (firstSeg) {
|
||||||
ads->ds_ctl1 |= segLen | (lastSeg ? 0 : AR_TxMore);
|
ads->ds_ctl1 |= segLen | (lastSeg ? 0 : AR_TxMore);
|
||||||
} else if (lastSeg) {
|
} else if (lastSeg) {
|
||||||
|
|
|
@ -693,7 +693,8 @@ bool ath9k_hw_updatetxtriglevel(struct ath_hw *ah, bool bIncTrigLevel);
|
||||||
bool ath9k_hw_stoptxdma(struct ath_hw *ah, u32 q);
|
bool ath9k_hw_stoptxdma(struct ath_hw *ah, u32 q);
|
||||||
void ath9k_hw_filltxdesc(struct ath_hw *ah, struct ath_desc *ds,
|
void ath9k_hw_filltxdesc(struct ath_hw *ah, struct ath_desc *ds,
|
||||||
u32 segLen, bool firstSeg,
|
u32 segLen, bool firstSeg,
|
||||||
bool lastSeg, const struct ath_desc *ds0);
|
bool lastSeg, const struct ath_desc *ds0,
|
||||||
|
dma_addr_t buf_addr);
|
||||||
void ath9k_hw_cleartxdesc(struct ath_hw *ah, struct ath_desc *ds);
|
void ath9k_hw_cleartxdesc(struct ath_hw *ah, struct ath_desc *ds);
|
||||||
int ath9k_hw_txprocdesc(struct ath_hw *ah, struct ath_desc *ds,
|
int ath9k_hw_txprocdesc(struct ath_hw *ah, struct ath_desc *ds,
|
||||||
struct ath_tx_status *ts);
|
struct ath_tx_status *ts);
|
||||||
|
|
|
@ -1660,7 +1660,6 @@ static void ath_tx_start_dma(struct ath_softc *sc, struct ath_buf *bf,
|
||||||
|
|
||||||
ds = bf->bf_desc;
|
ds = bf->bf_desc;
|
||||||
ds->ds_link = 0;
|
ds->ds_link = 0;
|
||||||
ds->ds_data = bf->bf_buf_addr;
|
|
||||||
|
|
||||||
ath9k_hw_set11n_txdesc(ah, ds, bf->bf_frmlen, frm_type, MAX_RATE_POWER,
|
ath9k_hw_set11n_txdesc(ah, ds, bf->bf_frmlen, frm_type, MAX_RATE_POWER,
|
||||||
bf->bf_keyix, bf->bf_keytype, bf->bf_flags);
|
bf->bf_keyix, bf->bf_keytype, bf->bf_flags);
|
||||||
|
@ -1669,7 +1668,8 @@ static void ath_tx_start_dma(struct ath_softc *sc, struct ath_buf *bf,
|
||||||
skb->len, /* segment length */
|
skb->len, /* segment length */
|
||||||
true, /* first segment */
|
true, /* first segment */
|
||||||
true, /* last segment */
|
true, /* last segment */
|
||||||
ds); /* first descriptor */
|
ds, /* first descriptor */
|
||||||
|
bf->bf_buf_addr);
|
||||||
|
|
||||||
spin_lock_bh(&txctl->txq->axq_lock);
|
spin_lock_bh(&txctl->txq->axq_lock);
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче