On Sun, 8 May 2005, David Brownell wrote: > > The HC_IS_RUNNING test fails after the state has been set to > > HC_STATE_SUSPENDED, so the interrupt handling isn't completed. > > That's odd. The MIE update should be harmless, though pointless > given that it's not disabled ... that may be leftover from some > ancient stuff, or maybe even a workaround for quirks on some > particular controller. > > What's odd is getting an IRQ there when it's marked as SUSPENDED! > > - INTR_RD would make sense; that should get acked. Likely the > previous branch should ack that, though normally that'd fire > when the controller is in the OHCI suspend state and both the > root hub and the HC are otherwise fully operational. > > - INTR_WDH should not be happening there at all; if it's suspended > the HC shouldn't be writing anything.
Oh, it's definitely INTR_RD. This happens when I have explicitly suspended the root hub via sysfs but left the controller running, and then plug/unplug a device. > No other IRQ makes sense. Try the attached patch, on the theory > that the problem is INTR_RD. (If this is really the issue, then > I'm surprised it's not appeared before.) Your patch solves the hang-up problem. Maybe the issue hasn't appeared before because no one has tried using sysfs to suspend the root hub and not the controller. The code still isn't quite right because the root hub doesn't automatically resume. I haven't tried to track down the reason, but maybe replacing the schedule_work() call with usb_hcd_resume_root_hub() would help. (That replacement should be made in any case.) Alan Stern ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. Get your fingers limbered up and give it your best shot. 4 great events, 4 opportunities to win big! Highest score wins.NEC IT Guy Games. Play to win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20 _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel