David: A few things about your suspend/resume changes are unclear or seem wrong.
Instead of checking for USB_STATE_SUSPENDED in hub_irq() when resubmitting the interrupt status URB, the URB should be unlinked during hub_suspend(). In usb_resume_device(), when resuming a root hub, I think you shouldn't call hub_resume() but instead call finish_resume(). After all, the hub driver may have been unbound from the root hub! There's no apparent mechanism for an HCD to indicate that the root hub has received a remote wakeup request while in global suspend mode. How is this meant to be handled? Your patch leaves two suspend/resume entries in struct hc_driver: one for suspending the entire controller and one for suspending just the root hub. It's not clear under what more the first has to do besides calling usb_suspend_device() for the root hub, which will then call the second. Maybe for a simple PCI controller like UHCI it doesn't have to do anything else? Alan Stern ------------------------------------------------------- This SF.Net email is sponsored by: Oracle 10g Get certified on the hottest thing ever to hit the market... Oracle 10g. Take an Oracle 10g class now, and we'll give you the exam FREE. http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel