rtl8180: fix incorrect TX retry.
authorAndrea Merello <andrea.merello@gmail.com>
Mon, 30 Jun 2014 16:18:55 +0000 (18:18 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 1 Jul 2014 18:26:27 +0000 (14:26 -0400)
HW is programmed with wrong retry count value for TX:

Mac80211 passes to driver the number of times the TX should be attempted.
The HW, instead, wants the number of time the TX should be retried if it fails
the first time (assuming we have to TX it at least one time).

This patch correct this.

Signed-off-by: Andrea Merello <andrea.merello@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rtl818x/rtl8180/dev.c

index 8a64bc116bfdef5e3c8770bdb52982dc0e73d8cc..4f4fcf8b2013050c6f562f72162bc34d9384072a 100644 (file)
@@ -542,7 +542,7 @@ static void rtl8180_tx(struct ieee80211_hw *dev,
 
        entry->flags2 = info->control.rates[1].idx >= 0 ?
                ieee80211_get_alt_retry_rate(dev, info, 0)->bitrate << 4 : 0;
-       entry->retry_limit = info->control.rates[0].count;
+       entry->retry_limit = info->control.rates[0].count - 1;
 
        /* We must be sure that tx_flags is written last because the HW
         * looks at it to check if the rest of data is valid or not