linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* USB rt2x00 driver regression
@ 2014-01-14 18:28 Sergei Antonov
  2014-01-17 10:06 ` Stanislaw Gruszka
  0 siblings, 1 reply; 13+ messages in thread
From: Sergei Antonov @ 2014-01-14 18:28 UTC (permalink / raw)
  To: linux-wireless, Gabor Juhos

[-- Attachment #1: Type: text/plain, Size: 1428 bytes --]

Hello!
I use a USB Wi-Fi adapter identified as follows.

usb 2-4: new high-speed USB device number 5 using ehci-pci
usb 2-4: New USB device found, idVendor=148f, idProduct=5370
usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 2-4: Product: 802.11 n WLAN
usb 2-4: Manufacturer: Ralink
usb 2-4: SerialNumber: 1.0
usb 2-4: reset high-speed USB device number 5 using ehci-pci
ieee80211 phy3: rt2x00_set_rt: Info - RT chipset 5390, rev 0502 detected
ieee80211 phy3: rt2x00_set_rf: Info - RF chipset 5370 detected

It worked well with older kernels and does not with newer kernels.
Specifically it fails to find any AP when scanning.
The first bad commit is:

commit 76773f301f2210dcc20c466aebda7118062673eb
Author: Gabor Juhos <juhosg@openwrt.org>
Date:   Sat Aug 17 14:09:30 2013 +0200

    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: Gabor Juhos <juhosg@openwrt.org>
    Signed-off-by: John W. Linville <linville@tuxdriver.com>

After I removed this special USB handling (see the patch) the adapter
works again.

[-- Attachment #2: rt2800.diff --]
[-- Type: text/plain, Size: 1106 bytes --]

diff --git a/drivers/net/wireless/rt2x00/rt2800.h b/drivers/net/wireless/rt2x00/rt2800.h
index aab6b5e..835e91d 100644
--- a/drivers/net/wireless/rt2x00/rt2800.h
+++ b/drivers/net/wireless/rt2x00/rt2800.h
@@ -2798,7 +2798,6 @@ enum rt2800_eeprom_word {
 #define MCU_RADAR			0x60
 #define MCU_BOOT_SIGNAL			0x72
 #define MCU_ANT_SELECT			0X73
-#define MCU_FREQ_OFFSET			0x74
 #define MCU_BBP_SIGNAL			0x80
 #define MCU_POWER_SAVE			0x83
 #define MCU_BAND_SELECT			0x91
diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
index 776aff3..1f80cf3 100644
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -1902,12 +1902,6 @@ static void rt2800_adjust_freq_offset(struct rt2x00_dev *rt2x00dev)
 	if (rfcsr == prev_rfcsr)
 		return;
 
-	if (rt2x00_is_usb(rt2x00dev)) {
-		rt2800_mcu_request(rt2x00dev, MCU_FREQ_OFFSET, 0xff,
-				   freq_offset, prev_rfcsr);
-		return;
-	}
-
 	prev_freq_offset = rt2x00_get_field8(prev_rfcsr, RFCSR17_CODE);
 	while (prev_freq_offset != freq_offset) {
 		if (prev_freq_offset < freq_offset)

^ permalink raw reply related	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2014-02-07 10:11 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-14 18:28 USB rt2x00 driver regression Sergei Antonov
2014-01-17 10:06 ` Stanislaw Gruszka
2014-01-19 10:57   ` Sergei Antonov
2014-01-19 12:19     ` Igor Gnatenko
2014-01-19 15:34       ` Sergei Antonov
2014-01-19 18:20         ` Gabor Juhos
2014-01-20 11:20           ` Sergei Antonov
2014-01-20 18:50             ` Stanislaw Gruszka
2014-01-22 11:27               ` Sergei Antonov
2014-01-22 16:25                 ` Stanislaw Gruszka
2014-01-29 17:45                   ` Sergei Antonov
2014-01-31 12:16                     ` Stanislaw Gruszka
2014-02-07 10:11                       ` Sergei Antonov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).