|
@@ -102,6 +102,13 @@ void rt2x00lib_config_antenna(struct rt2x00_dev *rt2x00dev,
|
|
|
libconf.ant.rx = rx;
|
|
|
libconf.ant.tx = tx;
|
|
|
|
|
|
+ /*
|
|
|
+ * Antenna setup changes require the RX to be disabled,
|
|
|
+ * else the changes will be ignored by the device.
|
|
|
+ */
|
|
|
+ if (test_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags))
|
|
|
+ rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_OFF);
|
|
|
+
|
|
|
/*
|
|
|
* Write new antenna setup to device and reset the link tuner.
|
|
|
* The latter is required since we need to recalibrate the
|
|
@@ -112,6 +119,9 @@ void rt2x00lib_config_antenna(struct rt2x00_dev *rt2x00dev,
|
|
|
|
|
|
rt2x00dev->link.ant.active.rx = libconf.ant.rx;
|
|
|
rt2x00dev->link.ant.active.tx = libconf.ant.tx;
|
|
|
+
|
|
|
+ if (test_bit(DEVICE_ENABLED_RADIO, &rt2x00dev->flags))
|
|
|
+ rt2x00lib_toggle_rx(rt2x00dev, STATE_RADIO_RX_ON);
|
|
|
}
|
|
|
|
|
|
void rt2x00lib_config(struct rt2x00_dev *rt2x00dev,
|