Quoting Florian Fainelli <flor...@openwrt.org>: > > 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?
Yes, it is possible. Vendor driver appears to have quite alot sleeps spread around in RF-chip handling code. I might have seen this myself sometimes when zd1211 device has firmware freeze and has to be reseted. But since freeze is hard to reproduce and reset didn't fail always, I didn't bother with it. Can you give your "Signed-off-by" line for the patch? -Jussi > > 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 > -- > To unsubscribe from this list: send the line "unsubscribe linux-wireless" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > > ------------------------------------------------------------------------------ Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d _______________________________________________ Zd1211-devs mailing list - http://zd1211.wiki.sourceforge.net/ Unsubscribe: https://lists.sourceforge.net/lists/listinfo/zd1211-devs