ath9k: Setup short preamble properly in rate registration
authorSujith <Sujith.Manoharan@atheros.com>
Tue, 27 Jan 2009 08:21:03 +0000 (13:51 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 30 Jan 2009 18:38:25 +0000 (13:38 -0500)
This patch fixes an issue where hw_value_short was not being filled
with the proper ratecode during rate registration, but was being used
in the RX path for decoding the packet rate.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath9k/main.c

index e9b0684ea70ecaaebc36a7d8b3516529f3c86ee6..d8e826659c150cbee40e085dad714bd137ffe685 100644 (file)
@@ -217,7 +217,13 @@ static void ath_setup_rates(struct ath_softc *sc, enum ieee80211_band band)
        for (i = 0; i < maxrates; i++) {
                rate[i].bitrate = rate_table->info[i].ratekbps / 100;
                rate[i].hw_value = rate_table->info[i].ratecode;
+               if (rate_table->info[i].short_preamble) {
+                       rate[i].hw_value_short = rate_table->info[i].ratecode |
+                               rate_table->info[i].short_preamble;
+                       rate[i].flags = IEEE80211_RATE_SHORT_PREAMBLE;
+               }
                sband->n_bitrates++;
+
                DPRINTF(sc, ATH_DBG_CONFIG, "Rate: %2dMbps, ratecode: %2d\n",
                        rate[i].bitrate / 10, rate[i].hw_value);
        }