linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* zd1211rw firmware loading timeout
@ 2011-11-29 14:44 Florian Fainelli
       [not found] ` <CAFAL1Txx=qn3WXdRrtaYPVySY2vx+HinKk-NgthR+2ufcYNMwA@mail.gmail.com>
  0 siblings, 1 reply; 14+ messages in thread
From: Florian Fainelli @ 2011-11-29 14:44 UTC (permalink / raw)
  To: linux-wireless, Daniel Drake, Ulrich Kunitz, linux-wireless,
	zd1211-devs

Hello,

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

The following small modification works around the issue:

diff --git a/zd_mac.c b/zd_mac.c
index cabfae1..6bfb673 100644
--- a/zd_mac.c
+++ b/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);
+
        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;
+       }
        r = zd_chip_enable_rxtx(chip);
        if (r < 0)
                goto disable_radio;

Is it possible that some chips require more time between a set_mc_hash and a 
radio on? Or in general that consequent writes to the PHY regs should be timed 
appropriately?

When I googled for this timeout issue, I could see quite some reports of other 
people having this error while the chip was already operating.

Thanks
-- 
Florian

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

end of thread, other threads:[~2012-02-29 13:01 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
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

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).