Hi Greg & Alan, Do you have any concern with accepting this patch? Thanks. Thanks, Andiry On Mon, 2010-05-03 at 01:57 +0800, Andiry Xu wrote: > >From 031335826c721b80974beefd9f1126a3e12be292 Mon Sep 17 00:00:00 2001 > From: Andiry Xu <andiry.xu@xxxxxxx> > Date: Mon, 3 May 2010 01:50:45 +0800 > Subject: [PATCH] usbcore: Do not disable USB3 protocol ports in hub_activate > > When USB3 protocol port detects an USB3.0 device attach, the port will > automatically transition to the Enabled state upon the completion > of successful link training. > > Do not disable USB3 protocol ports in hub_activate(), or USB3.0 device > will fail to be recognized if xHCI bus power management is implemented. > > Signed-off-by: Andiry Xu <andiry.xu@xxxxxxx> > --- > drivers/usb/core/hub.c | 16 ++++++++++++++-- > 1 files changed, 14 insertions(+), 2 deletions(-) > > diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c > index 7d235d4..647c447 100644 > --- a/drivers/usb/core/hub.c > +++ b/drivers/usb/core/hub.c > @@ -745,8 +745,20 @@ static void hub_activate(struct usb_hub *hub, enum hub_activation_type type) > !(portstatus & USB_PORT_STAT_CONNECTION) || > !udev || > udev->state == USB_STATE_NOTATTACHED)) { > - clear_port_feature(hdev, port1, USB_PORT_FEAT_ENABLE); > - portstatus &= ~USB_PORT_STAT_ENABLE; > + /* > + * USB3 protocol ports will automatically transition > + * to Enabled state when detect an USB3.0 device attach. > + * Do not disable USB3 protocol ports. > + * FIXME: USB3 root hub and external hubs are treated > + * differently here. > + */ > + if (hdev->descriptor.bDeviceProtocol != 3 || > + (!hdev->parent && > + !(portstatus & USB_PORT_STAT_SUPER_SPEED))) { > + clear_port_feature(hdev, port1, > + USB_PORT_FEAT_ENABLE); > + portstatus &= ~USB_PORT_STAT_ENABLE; > + } > } > > /* Clear status-change flags; we'll debounce later */ -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html