Thanks for your reply. I am doing FPGA testing of EHCI host controller which is under development. Even In standard Intel PC ( Intel 82801DB/DBM USB 2.0 Enhanced Host Controller ) which is running Linux-2.6.14 , this code path is traversed some times but every thing seems ok ( no irq nobody cared messages ). But In my case as soon as I entered this function with splinlock_irq_save , I am getting an EHCI interrupt with STS_IAA bit set and I am clearing the same bit in this function and now there are no status bits for indicating the occurence of that interrupt.So when I go back to ehci_irq after spinunlock_irq_save in ehci_watchdog , the following piece of code is executed. if (!status) { __/* irq sharing? */ spin_unlock(&ehci->lock); return IRQ_NONE; } But copy is fine even with this problem.Does any memory leakage will happen with this problem in long run.Is there any harm if this problem is not fixed in the hardware. I have observed that in my PC , this interrupt is not coming when I am in ehci_watchdog function. Due to some problems while booting up the Linux-2.6.17 , I am not able to do FPGA testing on the latest kernel.But codewise everything seems same with respect to asynchronous transfers.So I am expecting the same behaviour with this kernel also. Please give me some suggestion with respect to this problem. Thanks you very much, Naveen
--- David Brownell <[EMAIL PROTECTED]> wrote: > From: David Brownell <[EMAIL PROTECTED]> > To: [EMAIL PROTECTED] > Subject: Re: irq nobody cared in EHCI - Linux-2.6.14 > Date: Tue, 18 Jul 2006 14:46:02 -0700 > CC: Naveen Mamindlapalli > <[EMAIL PROTECTED]> > > On Tuesday 18 July 2006 5:30 am, Naveen > Mamindlapalli wrote: > > > > Why ehci_watchdog is encountering the condition > > if(ehci->reclaim) & if (status * STS_IAA) only > some times. > > Because the silicon bug being worked around by the > watchdog doesn't > appear all the time. Whose EHCI silicon are you > using? (Note > that I'm assuming you mean "&" not "*" ... very > different.) > > > > CODE in ehci-hcd.c : ehci_watchdog function: > > > ------------------------------------------------------------------ > > if (ehci->reclaim) { > > u32 status = readl (&ehci->regs->status); > > if (status & STS_IAA) { > > > ------------------------------------------------------------------- > > > > I doubt why we should clear any interrupt status > bits in a function which is > > not an interrupt service routine. > > It's _status_ not specifically "interrupt" status > ... so it would be set > even if the IRQ were not enabled. And the silicon > bug is that STS_IAA > sometimes gets set without the IRQ triggering, even > if the IRQ is enabled, > leading to hangs -- unless the watchdog is there to > cause the IAA handling > to happen in those cases. (Seen reasonably often on > VIA hardware.) > > > > Can anybody give some suggestions on this. > > If you're getting the "nobody cared" that implies > your EHCI controller > has such a silicon problem, yes? It also implies > your code doesn't > match any recent version ... IRQ_NONE is never > returned. > > > USB issues like this are best brought up on the USB > list, since they're > not going to be ARM-specific. And as has been > noted, 2.6.14 is kind of > old ... try a current kernel. There seem to be some > glitches still in > the unlink paths, but none that show up on hardware > I have access to. > > - Dave > > __________________________________________________________ Yahoo! India Answers: Share what you know. Learn something new http://in.answers.yahoo.com/ ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel