aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/wireless/rt2x00/rt2x00config.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2x00config.c b/drivers/net/wireless/rt2x00/rt2x00config.c
index b4fad744503e..9f0733bc4fae 100644
--- a/drivers/net/wireless/rt2x00/rt2x00config.c
+++ b/drivers/net/wireless/rt2x00/rt2x00config.c
@@ -103,6 +103,13 @@ void rt2x00lib_config_antenna(struct rt2x00_dev *rt2x00dev,
103 libconf.ant.tx = tx; 103 libconf.ant.tx = tx;
104 104
105 /* 105 /*
106 * Antenna setup changes require the RX to be disabled,
107 * else the changes will be ignored by the device.
108 */
109 if (test_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags))
110 rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_OFF);
111
112 /*
106 * Write new antenna setup to device and reset the link tuner. 113 * Write new antenna setup to device and reset the link tuner.
107 * The latter is required since we need to recalibrate the 114 * The latter is required since we need to recalibrate the
108 * noise-sensitivity ratio for the new setup. 115 * noise-sensitivity ratio for the new setup.
@@ -112,6 +119,9 @@ void rt2x00lib_config_antenna(struct rt2x00_dev *rt2x00dev,
112 119
113 rt2x00dev->link.ant.active.rx = libconf.ant.rx; 120 rt2x00dev->link.ant.active.rx = libconf.ant.rx;
114 rt2x00dev->link.ant.active.tx = libconf.ant.tx; 121 rt2x00dev->link.ant.active.tx = libconf.ant.tx;
122
123 if (test_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags))
124 rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_ON);
115} 125}
116 126
117void rt2x00lib_config(struct rt2x00_dev *rt2x00dev, 127void rt2x00lib_config(struct rt2x00_dev *rt2x00dev,