rt2x00: do not shortcut rt2x00lib_config_antenna
authorJohn W. Linville <linville@tuxdriver.com>
Wed, 26 May 2010 17:33:31 +0000 (13:33 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 16 Aug 2010 19:23:42 +0000 (15:23 -0400)
This function was exiting early if the existing diversity settings
were unchanged.  Unfortunately, in some cases the antenna configuration
is not initialized at all.

https://bugzilla.kernel.org/show_bug.cgi?id=14751

Signed-off-by: John W. Linville <linville@tuxdriver.com>
Acked-by: Ivo van Doorn <IvDoorn@gmail.com>
Cc: Gertjan van Wingerde <gwingerde@gmail.com>
drivers/net/wireless/rt2x00/rt2x00config.c

index 953dc4f..fb23af4 100644 (file)
@@ -126,11 +126,6 @@ void rt2x00lib_config_antenna(struct rt2x00_dev *rt2x00dev,
         * ANTENNA_SW_DIVERSITY state to the driver.
         * If that happens, fallback to hardware defaults,
         * or our own default.
-        * If diversity handling is active for a particular antenna,
-        * we shouldn't overwrite that antenna.
-        * The calls to rt2x00lib_config_antenna_check()
-        * might have caused that we restore back to the already
-        * active setting. If that has happened we can quit.
         */
        if (!(ant->flags & ANTENNA_RX_DIVERSITY))
                config.rx = rt2x00lib_config_antenna_check(config.rx, def->rx);
@@ -142,9 +137,6 @@ void rt2x00lib_config_antenna(struct rt2x00_dev *rt2x00dev,
        else
                config.tx = active->tx;
 
-       if (config.rx == active->rx && config.tx == active->tx)
-               return;
-
        /*
         * Antenna setup changes require the RX to be disabled,
         * else the changes will be ignored by the device.