Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 76773f30 authored by Gabor Juhos's avatar Gabor Juhos Committed by John W. Linville
Browse files

rt2x00: rt2800lib: use a MCU command for frequency adjustment on USB devices



According to the Ralink driver, there is an MCU
command which can be used to send the frequency
offset value directly to the USB device without
going through the RFCSR writing sequence.

Based on the DPO_RT5572_LinuxSTA_2.6.0.1_20120629
driver.

Reference:
  RTMPAdjustFrequencyOffset function in common/rt_rf.c

Signed-off-by: default avatarGabor Juhos <juhosg@openwrt.org>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 6af1bdcc
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -2794,6 +2794,7 @@ enum rt2800_eeprom_word {
#define MCU_RADAR			0x60
#define MCU_RADAR			0x60
#define MCU_BOOT_SIGNAL			0x72
#define MCU_BOOT_SIGNAL			0x72
#define MCU_ANT_SELECT			0X73
#define MCU_ANT_SELECT			0X73
#define MCU_FREQ_OFFSET			0x74
#define MCU_BBP_SIGNAL			0x80
#define MCU_BBP_SIGNAL			0x80
#define MCU_POWER_SAVE			0x83
#define MCU_POWER_SAVE			0x83
#define MCU_BAND_SELECT		0x91
#define MCU_BAND_SELECT		0x91
+5 −1
Original line number Original line Diff line number Diff line
@@ -2509,6 +2509,10 @@ static void rt2800_adjust_freq_offset(struct rt2x00_dev *rt2x00dev)
	if (rfcsr == prev_rfcsr)
	if (rfcsr == prev_rfcsr)
		return;
		return;


	if (rt2x00_is_usb(rt2x00dev))
		rt2800_mcu_request(rt2x00dev, MCU_FREQ_OFFSET, 0xff,
				   freq_offset, prev_rfcsr);
	else
		rt2800_rfcsr_write(rt2x00dev, 17, rfcsr);
		rt2800_rfcsr_write(rt2x00dev, 17, rfcsr);
}
}