Search Linux Wireless

Re: USB rt2x00 driver regression

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 2014-01-19 at 11:57 +0100, Sergei Antonov wrote:
> > Am 17.01.2014 um 11:06 schrieb Stanislaw Gruszka <sgruszka@xxxxxxxxxx>:
> > 
> >> On Tue, Jan 14, 2014 at 07:28:39PM +0100, Sergei Antonov wrote:
> >> 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@xxxxxxxxxxx>
> >> 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@xxxxxxxxxxx>
> >>    Signed-off-by: John W. Linville <linville@xxxxxxxxxxxxx>
> >> 
> >> After I removed this special USB handling (see the patch) the adapter
> >> works again.
> > 
> > Thanks for bisecting! Could you check if following patch fixes the
> > issue?
> 
> It does not fix the issue. The same broken behavior remains.
I couldn't understand one string in original RTMPAdjustFrequencyOffset. Could you try follow patch ?

diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c
index 776aff3..dbb33a5 100644
--- a/drivers/net/wireless/rt2x00/rt2800lib.c
+++ b/drivers/net/wireless/rt2x00/rt2800lib.c
@@ -1893,7 +1893,7 @@ static void rt2800_adjust_freq_offset(struct rt2x00_dev *rt2x00dev)
        u8 rfcsr, prev_rfcsr;
 
        freq_offset = rt2x00_get_field8(rt2x00dev->freq_offset, RFCSR17_CODE);
-       freq_offset = min_t(u8, freq_offset, FREQ_OFFSET_BOUND);
+       freq_offset = min_t(u8, (freq_offset & 0x7f), FREQ_OFFSET_BOUND);
 
        rt2800_rfcsr_read(rt2x00dev, 17, &rfcsr);
        prev_rfcsr = rfcsr;

-- 
-Igor Gnatenko


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux