[drivers rtl8180] Remove NET80211_RATE_VALUE; pass RX rate to netdev_rx()
authorJoshua Oreman <oremanj@xenon.get-linux.org>
Sat, 20 Jun 2009 06:04:57 +0000 (23:04 -0700)
committerJoshua Oreman <oremanj@xenon.get-linux.org>
Sat, 20 Jun 2009 06:04:57 +0000 (23:04 -0700)
src/drivers/net/rtl818x/rtl8180.c

index 7910df6..d2fcf88 100644 (file)
@@ -37,6 +37,7 @@ FILE_LICENCE(GPL2_ONLY);
 static const u16 rtl818x_rates[] = {
        10, 20, 55, 110, /* 802.11b */
        60, 90, 120, 180, 240, 360, 480, 540, /* 802.11g */
+       0, 0, 0, 0,             /* index safely using a value masked with 0xF */
 };
 #define RTL818X_NR_B_RATES  4
 #define RTL818X_NR_RATES    12
@@ -95,7 +96,8 @@ static void rtl8180_handle_rx(struct net80211_device *dev)
 
                        iob_put(iob, flags & 0xFFF);
 
-                       net80211_rx(dev, iob, (flags2 >> 8) & 0x7f);
+                       net80211_rx(dev, iob, (flags2 >> 8) & 0x7f,
+                                   rtl818x_rates[(flags >> 20) & 0xf]);
 
                        iob = new_iob;
                        priv->rx_buf[priv->rx_idx] = iob;
@@ -564,8 +566,7 @@ static int rtl8180_config(struct net80211_device *dev, int changed)
                   logical rate */
                int hw_rate;
                for (hw_rate = 0; hw_rate < RTL818X_NR_RATES &&
-                            rtl818x_rates[hw_rate] !=
-                            NET80211_RATE_VALUE ( dev->rates[dev->rate] );
+                            rtl818x_rates[hw_rate] != dev->rates[dev->rate];
                     hw_rate++)
                        ;
                if (hw_rate >= RTL818X_NR_RATES)
@@ -576,7 +577,7 @@ static int rtl8180_config(struct net80211_device *dev, int changed)
                /* and the RTS/CTS rate */
                for (hw_rate = 0; hw_rate < RTL818X_NR_RATES &&
                             rtl818x_rates[hw_rate] !=
-                          NET80211_RATE_VALUE ( dev->rates[dev->rtscts_rate] );
+                               dev->rates[dev->rtscts_rate];
                     hw_rate++)
                        ;
                if (hw_rate >= RTL818X_NR_RATES)