Hi,I dont think its a bug in xhci. In case of xhci-pci driver it actually does an
On Thu, May 08, 2014 at 03:03:07PM +0530, George Cherian wrote:
Enabling the core interrupts in complete is too late for XHCI, and stopsisn't this a bug in xhci ? I mean the driver should make no assumption
xhci from proper operation. So remove prepare and complete and disable/enable
as to when IRQs are enabled, why do we need to enable IRQs earlier when
the device is only considered "ready for use" after ->complete()
finishes executing ?
From documentation we have:Probably the patch should have been to still keep the complete/prepare in place
107 * @complete: Undo the changes made by @prepare(). This method is executed for
108 * all kinds of resume transitions, following one of the resume callbacks:
109 * @resume(), @thaw(), @restore(). Also called if the state transition
110 * fails before the driver's suspend callback: @suspend(), @freeze() or
111 * @poweroff(), can be executed (e.g. if the suspend callback fails for one
112 * of the other devices that the PM core has unsuccessfully attempted to
113 * suspend earlier).
114 * The PM core executes subsystem-level @complete() after it has executed
115 * the appropriate resume callbacks for all devices.
which tells me that using ->complete() to reenable IRQs is ok here.
Specially when you consider that the role of ->prepare() is to prevent
new children from being created and, for a USB host, that means we
should prevent hub port changes.
cheers