Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=16b1951f53c6097d7355e76ed9ca64b056f88f31
Commit:     16b1951f53c6097d7355e76ed9ca64b056f88f31
Parent:     ddc827f93a2f2a7dcfda5b691d046af4dfe76427
Author:     Mattias Nissler <[EMAIL PROTECTED]>
AuthorDate: Sat Oct 13 16:26:57 2007 +0200
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Mon Jan 28 15:02:54 2008 -0800

    [PATCH] rt2x00: Fix antenna selection.
    
    In the config() handler, make sure that we do configure an antenna if the
    current active antenna is uninitialized. Furthermore, don't overwrite the
    active antenna with bogus values if we didn't touch the antenna setup.
    
    Signed-off-by: Mattias Nissler <[EMAIL PROTECTED]>
    Signed-off-by: Ivo van Doorn <[EMAIL PROTECTED]>
    Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
    Signed-off-by: David S. Miller <[EMAIL PROTECTED]>
---
 drivers/net/wireless/rt2x00/rt2x00config.c |   18 ++++++++++++++----
 1 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/drivers/net/wireless/rt2x00/rt2x00config.c 
b/drivers/net/wireless/rt2x00/rt2x00config.c
index 2b0edd2..b4fad74 100644
--- a/drivers/net/wireless/rt2x00/rt2x00config.c
+++ b/drivers/net/wireless/rt2x00/rt2x00config.c
@@ -166,6 +166,8 @@ void rt2x00lib_config(struct rt2x00_dev *rt2x00dev,
        else if (conf->antenna_sel_rx &&
                 conf->antenna_sel_rx != active_ant->rx)
                flags |= CONFIG_UPDATE_ANTENNA;
+       else if (active_ant->rx == ANTENNA_SW_DIVERSITY)
+               flags |= CONFIG_UPDATE_ANTENNA;
 
        if (!conf->antenna_sel_tx &&
            default_ant->tx != ANTENNA_SW_DIVERSITY &&
@@ -174,6 +176,8 @@ void rt2x00lib_config(struct rt2x00_dev *rt2x00dev,
        else if (conf->antenna_sel_tx &&
                 conf->antenna_sel_tx != active_ant->tx)
                flags |= CONFIG_UPDATE_ANTENNA;
+       else if (active_ant->tx == ANTENNA_SW_DIVERSITY)
+               flags |= CONFIG_UPDATE_ANTENNA;
 
        /*
         * The following configuration options are never
@@ -262,11 +266,17 @@ config:
        if (flags & (CONFIG_UPDATE_CHANNEL | CONFIG_UPDATE_ANTENNA))
                rt2x00lib_reset_link_tuner(rt2x00dev);
 
-       rt2x00dev->curr_hwmode = libconf.phymode;
-       rt2x00dev->rx_status.phymode = conf->phymode;
+       if (flags & CONFIG_UPDATE_PHYMODE) {
+               rt2x00dev->curr_hwmode = libconf.phymode;
+               rt2x00dev->rx_status.phymode = conf->phymode;
+       }
+
        rt2x00dev->rx_status.freq = conf->freq;
        rt2x00dev->rx_status.channel = conf->channel;
        rt2x00dev->tx_power = conf->power_level;
-       rt2x00dev->link.ant.active.rx = libconf.ant.rx;
-       rt2x00dev->link.ant.active.tx = libconf.ant.tx;
+
+       if (flags & CONFIG_UPDATE_ANTENNA) {
+               rt2x00dev->link.ant.active.rx = libconf.ant.rx;
+               rt2x00dev->link.ant.active.tx = libconf.ant.tx;
+       }
 }
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to