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