rt2x00: Limit beacon updates in bss_info_changed to USB devices
authorHelmut Schaa <helmut.schaa@googlemail.com>
Sun, 30 Jan 2011 12:16:52 +0000 (13:16 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 31 Jan 2011 20:06:22 +0000 (15:06 -0500)
Currently there are two places that trigger a beacon update on PCI
devices. The bss_info_changed callback and the periodic update
triggered by the TBTT or PRETBTT interrupt.

Since the next TBTT or PRETBTT interrupt will periodically fetch an
updated beacon remove the update_beacon call in the bss_info_changed
callback for PCI devices.

In the worst case it will take one beacon interval longer to fetch
the new beacon then before. For devices that have a PRETBTT interrupt
there should be no change at all.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: Ivo van Doorn <IvDoorn@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rt2x00/rt2x00mac.c

index 7d3316724bb47ea444fba46e3ad9c7f0b9c2b075..6a66021d8f654b759c831c5d884d791f368eef0b 100644 (file)
@@ -617,9 +617,10 @@ void rt2x00mac_bss_info_changed(struct ieee80211_hw *hw,
                                      bss_conf->bssid);
 
        /*
-        * Update the beacon.
+        * Update the beacon. This is only required on USB devices. PCI
+        * devices fetch beacons periodically.
         */
-       if (changes & BSS_CHANGED_BEACON)
+       if (changes & BSS_CHANGED_BEACON && rt2x00_is_usb(rt2x00dev))
                rt2x00queue_update_beacon(rt2x00dev, vif);
 
        /*