OSDN Git Service

rt2x00: rt2800lib: turn on secondary PAs/LNAs for 3T/3R devices
authorGabor Juhos <juhosg@openwrt.org>
Mon, 24 Jun 2013 21:03:23 +0000 (23:03 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 27 Jun 2013 17:42:12 +0000 (13:42 -0400)
The secondary PAs/LNAs are turned on only for 2T/2R
devices, however these are used for 3T/3R devices as
well. Always turn those on if the device uses more
than one tx/rx chains.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Acked-by: Stanislaw Gruszka <stf_xl@wp.pl>
Acked-by: Gertjan van Wingerde <gwingerde@gmail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/rt2x00/rt2800lib.c

index 4072242..b7119e3 100644 (file)
@@ -2678,16 +2678,16 @@ static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
 
        tx_pin = 0;
 
-       /* Turn on unused PA or LNA when not using 1T or 1R */
-       if (rt2x00dev->default_ant.tx_chain_num == 2) {
+       if (rt2x00dev->default_ant.tx_chain_num > 1) {
+               /* Turn on secondary PAs for 2T and for 3T devices*/
                rt2x00_set_field32(&tx_pin, TX_PIN_CFG_PA_PE_A1_EN,
                                   rf->channel > 14);
                rt2x00_set_field32(&tx_pin, TX_PIN_CFG_PA_PE_G1_EN,
                                   rf->channel <= 14);
        }
 
-       /* Turn on unused PA or LNA when not using 1T or 1R */
-       if (rt2x00dev->default_ant.rx_chain_num == 2) {
+       if (rt2x00dev->default_ant.rx_chain_num > 1) {
+               /* Turn on secondary LNAs for 2R and for 3R devices */
                rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_A1_EN, 1);
                rt2x00_set_field32(&tx_pin, TX_PIN_CFG_LNA_PE_G1_EN, 1);
        }