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

Reply via email to