In routine ath_tx_fill_desc(), the txpower is only set to
MAX_RATE_POWER. Now it respects the txpower from bss_conf and set it if it
is (txpower * 2) < MAX_RATE_POWER else set to MAX_RATE_POWER.

Signed-off-by: Tobias Steinicke <tsteini...@net.t-labs.tu-berlin.de>
---
 drivers/net/wireless/ath/ath9k/xmit.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/ath9k/xmit.c 
b/drivers/net/wireless/ath/ath9k/xmit.c
index 5bc5802..90701e4 100644
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -1110,13 +1110,18 @@ static void ath_tx_fill_desc(struct ath_softc *sc, 
struct ath_buf *bf,
        struct ath_buf *bf_first = bf;
        struct ath_tx_info info;
        bool aggr = !!(bf->bf_state.bf_type & BUF_AGGR);
+       u8 txpower = tx_info->control.vif->bss_conf.txpower * 2;

        memset(&info, 0, sizeof(info));
        info.is_first = true;
        info.is_last = true;
-       info.txpower = MAX_RATE_POWER;
        info.qcu = txq->axq_qnum;

+       if (txpower > MAX_RATE_POWER)
+               info.txpower = MAX_RATE_POWER;
+       else
+               info.txpower = txpower;
+
        info.flags = ATH9K_TXDESC_INTREQ;
        if (tx_info->flags & IEEE80211_TX_CTL_NO_ACK)
                info.flags |= ATH9K_TXDESC_NOACK;
-- 1.7.9.5
_______________________________________________
ath9k-devel mailing list
ath9k-devel@lists.ath9k.org
https://lists.ath9k.org/mailman/listinfo/ath9k-devel

Reply via email to