From: Florian Fainelli <florian@openwrt.org>
To: Julian Calaby <julian.calaby@gmail.com>
Cc: linville@tuxdriver.com, linux-wireless@vger.kernel.org,
dsd@gentoo.org, kune@deine-taler.de, jussi.kivilinna@mbnet.fi
Subject: Re: [PATCH] zd1211rw: wait between setting hash table and powering radio on
Date: Thu, 09 Feb 2012 11:54:22 +0100 [thread overview]
Message-ID: <4F33A5DE.8020208@openwrt.org> (raw)
In-Reply-To: <CAGRGNgX-_s_EsbBLxs6UNJd7=3Yk0HECfxb-HSB_-r6cDyyuuA@mail.gmail.com>
Hi Julian,
On 02/09/12 11:40, Julian Calaby wrote:
> Hi Florian,
>
> A couple of minor points:
>
> On Thu, Feb 9, 2012 at 21:24, Florian Fainelli<florian@openwrt.org> wrote:
>> I am running Debian testing kernel 3.1.0-1-amd64, using a 079b:0062 Sagem
>> XG-76NA 802.11bg stick.
>>
>> Upon zd1211rw interface
>> bringup (ifconfig wlan0 up) I get the following timeout:
>>
>> [ 950.330573] zd1211rw 1-3:1.0: phy2
>> [ 955.108510] zd1211rw 1-3:1.0: firmware version 4725
>> [ 955.148532] zd1211rw 1-3:1.0: zd1211b chip 079b:0062 v4810 high 00-19-70
>> AL2230_RF pa0 g--NS
>> [snip]
>> [ 955.204072] zd1211rw 1-3:1.0: error ioread32(CR_REG1): -110
>>
>> A second ifconfig wlan0 up brings the interface up without problems.
>>
>> After a bit more debugging, the call trace is the following:
>>
>> [10241.028130] zd1211rw 1-3:1.0: zd_chip_lock_phy_regs: error
>> ioread32(CR_REG1): -110
>> [10241.028140] zd1211rw 1-3:1.0: zd_switch_radio_on: failed to lock PHY regs
>> [10241.028148] zd1211rw 1-3:1.0: zd_op_start: failed to set radio on
>>
>> Adding a 10 milliseconds delay between the call to set_mc_hash() and
>> zd_chip_switch_radio_on() allows successful interface bringups in all
>> cases and matches what the vendor driver did.
>>
>> Signed-off-by: Florian Fainelli<florian@openwrt.org>
>> ---
>> drivers/net/wireless/zd1211rw/zd_mac.c | 7 ++++++-
>> 1 files changed, 6 insertions(+), 1 deletions(-)
>>
>> diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wireless/zd1211rw/zd_mac.c
>> index 98a574a..bed634c 100644
>> --- a/drivers/net/wireless/zd1211rw/zd_mac.c
>> +++ b/drivers/net/wireless/zd1211rw/zd_mac.c
>> @@ -306,9 +306,14 @@ int zd_op_start(struct ieee80211_hw *hw)
>> r = set_mc_hash(mac);
>> if (r)
>> goto disable_int;
>> + msleep(10);
> You might want to stick a comment in here to tell future developers
> why we're doing this.
I was counting on the commit message to actually provide the detailed
explanation, but you are right, some comment might be appropriate here
as well.
>
>> +
>> r = zd_chip_switch_radio_on(chip);
>> - if (r< 0)
>> + if (r< 0) {
>> + dev_err(zd_chip_dev(chip),
>> + "%s: failed to set radio on\n", __func__);
>> goto disable_int;
>> + }
> It might also be an idea to have it re-try powering on the radio
> after, say 100 msecs, just in case 10 msecs isn't enough for whatever
> is causing this issue.
Here I would rather let the error be printed in the kernel log for
people to report an issue if 10 msecs proves not to be enough for some
systems.
>
>> r = zd_chip_enable_rxtx(chip);
>> if (r< 0)
>> goto disable_radio;
> Thanks,
>
next prev parent reply other threads:[~2012-02-09 10:54 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-29 14:44 zd1211rw firmware loading timeout Florian Fainelli
[not found] ` <CAFAL1Txx=qn3WXdRrtaYPVySY2vx+HinKk-NgthR+2ufcYNMwA@mail.gmail.com>
2012-02-08 13:15 ` Jussi Kivilinna
2012-02-08 13:17 ` Florian Fainelli
2012-02-08 16:01 ` Jussi Kivilinna
2012-02-09 10:24 ` [PATCH] zd1211rw: wait between setting hash table and powering radio on Florian Fainelli
2012-02-09 10:40 ` Julian Calaby
2012-02-09 10:54 ` Florian Fainelli [this message]
2012-02-09 11:10 ` Julian Calaby
2012-02-09 11:41 ` Jussi Kivilinna
2012-02-15 10:33 ` Florian Fainelli
2012-02-15 12:52 ` Jussi Kivilinna
2012-02-29 9:36 ` [PATCH v2] " Florian Fainelli
2012-02-29 10:25 ` Julian Calaby
2012-02-29 13:00 ` [PATCH v3] " Florian Fainelli
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F33A5DE.8020208@openwrt.org \
--to=florian@openwrt.org \
--cc=dsd@gentoo.org \
--cc=julian.calaby@gmail.com \
--cc=jussi.kivilinna@mbnet.fi \
--cc=kune@deine-taler.de \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.