From patchwork Sun Jan 19 18:20:17 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gabor Juhos X-Patchwork-Id: 3509641 Return-Path: X-Original-To: patchwork-linux-wireless@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id CE6799F1C3 for ; Sun, 19 Jan 2014 18:29:45 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 1073C2010E for ; Sun, 19 Jan 2014 18:29:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 1EAC12010B for ; Sun, 19 Jan 2014 18:29:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751709AbaASS3m (ORCPT ); Sun, 19 Jan 2014 13:29:42 -0500 Received: from phoenix3.szarvasnet.hu ([87.101.127.16]:38733 "EHLO mail.szarvasnet.hu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751668AbaASS3l (ORCPT ); Sun, 19 Jan 2014 13:29:41 -0500 X-Greylist: delayed 560 seconds by postgrey-1.27 at vger.kernel.org; Sun, 19 Jan 2014 13:29:41 EST Received: from localhost (localhost [127.0.0.1]) by phoenix3.szarvasnet.hu (Postfix) with ESMTP id 83788542082; Sun, 19 Jan 2014 19:20:14 +0100 (CET) Received: from mail.szarvasnet.hu ([127.0.0.1]) by localhost (phoenix3.szarvasnet.hu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id u57iT7FPVysU; Sun, 19 Jan 2014 19:20:14 +0100 (CET) Received: from [192.168.254.50] (catvpool-576570d8.szarvasnet.hu [87.101.112.216]) by phoenix3.szarvasnet.hu (Postfix) with ESMTPA id 5065E542093; Sun, 19 Jan 2014 19:20:13 +0100 (CET) Message-ID: <52DC1761.9080608@openwrt.org> Date: Sun, 19 Jan 2014 19:20:17 +0100 From: Gabor Juhos User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 MIME-Version: 1.0 To: Sergei Antonov , Igor Gnatenko CC: Stanislaw Gruszka , linux-wireless Subject: Re: USB rt2x00 driver regression References: <20140117100613.GD1425@redhat.com> <1390133995.6945.11.camel@X1Carbon.localdomain> <03574886-F38F-461C-97FC-B10DCCCF30E8@gmail.com> In-Reply-To: <03574886-F38F-461C-97FC-B10DCCCF30E8@gmail.com> X-Enigmail-Version: 1.6 Sender: linux-wireless-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org X-Spam-Status: No, score=-7.4 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, T_TVD_MIME_EPI, UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Hi Sergei, <...> >>>>> 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 >>>>> 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 >>>>> Signed-off-by: John W. Linville >>>>> >>>>> 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 ? > Tried your patch with and without Stanislaw's patch. No success. I guess that this is a timing issue. Maybe the RT5390 device does not finish the MCU command before the scan runs. The Ralink reference driver calls the frequency adjustment code from the NICInitRT5390RFRegisters function but the equivalent call is missing from the rt2x00 driver. Additionaly, the Ralink driver uses 1 ms delay after calling the frequency adjustment code which is also missing from rt2x00. The attached patch set adds the missing code to rt2x00. Please test whether it fixes the problem or not. Thanks, Gabor From 3f4a100688acbe0c331fc490827bb21c2dc614ca Mon Sep 17 00:00:00 2001 From: Gabor Juhos Date: Fri, 17 Jan 2014 22:08:51 +0100 Subject: [PATCH 2/2] rt2x00: rt2800lib: adjust frequency offset during rfcsr init on RT5390/5392 Signed-off-by: Gabor Juhos --- drivers/net/wireless/rt2x00/rt2800lib.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c index c6bc231..ca92403 100644 --- a/drivers/net/wireless/rt2x00/rt2800lib.c +++ b/drivers/net/wireless/rt2x00/rt2800lib.c @@ -6550,6 +6550,8 @@ static void rt2800_init_rfcsr_5390(struct rt2x00_dev *rt2x00dev) { rt2800_rf_init_calibration(rt2x00dev, 2); + rt2800_adjust_freq_offset(rt2x00dev); + rt2800_rfcsr_write(rt2x00dev, 1, 0x0f); rt2800_rfcsr_write(rt2x00dev, 2, 0x80); rt2800_rfcsr_write(rt2x00dev, 3, 0x88); @@ -6648,6 +6650,8 @@ static void rt2800_init_rfcsr_5392(struct rt2x00_dev *rt2x00dev) { rt2800_rf_init_calibration(rt2x00dev, 2); + rt2800_adjust_freq_offset(rt2x00dev); + rt2800_rfcsr_write(rt2x00dev, 1, 0x17); rt2800_rfcsr_write(rt2x00dev, 3, 0x88); rt2800_rfcsr_write(rt2x00dev, 5, 0x10); -- 1.7.10