On Wednesday 28 June 2006 19:32, Larry Finger wrote: > Michael Buesch wrote: > > On Wednesday 28 June 2006 18:04, Larry Finger wrote: > > > > Oh, well. Forget it all. > > I remembered the code wrong. > > At the moment I looked at the code and it has the opposite semantics. > > It loops to wait for the READY bit to appear. > > > > Well, I would say your old device simply takes this long > > to disable and there is no bug. > > > > Oh, well... > > So the conclusion is that my card is really slow. As mine is likely to be the > worst of the lot, I > propose the following structure for the loop in question: > > for (i = 10000; i; i--) { > tmp = bcm43xx_read32(bcm, > BCM43xx_MMIO_GEN_IRQ_REASON); > if (tmp & BCM43xx_IRQ_READY) { > if (i < 9998) > printkl(KERN_INFO PFX "MAC suspend > delay %d usec, IRQ_REASON " > "0x%08x\n", 10000-i, tmp & > ~BCM43xx_IRQ_READY); > goto out; > } > udelay(1); > } > printkl(KERN_ERR PFX "MAC suspend failed\n"); > > My maximum delay (so far) is 796 usec, thus this loop gives me a safety > factor of more than 10, but > it should satisfy Jeff and let this patch in question be accepted.
Ok, I will send a patch to lower the limit to 10000 usec. This won't do _any_ good (or bad), but well... If everybody likes placebos, I will add it to the driver. It's a bit complicated for me to say why your card takes 800usec to suspend MAC. And additionally it is not really possible for me to try to find a way making the card respond earlier (if possible) remotely through you. ;) How problematic might a 800usec delay with IRQs disabled be? > Of course, the 'if (i < 9998)' > statement with the printkl is optional. It is to be removed. ;) -- Greetings Michael. - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html