On Wed, 2010-04-28 at 12:05 -0400, Alan Stern wrote: > On Thu, 29 Apr 2010, Andiry Xu wrote: > > > >From 7fab4880295b3af163342570d3c33ac0b51d29b5 Mon Sep 17 00:00:00 2001 > > From: Andiry Xu <andiry.xu@xxxxxxx> > > Date: Thu, 29 Apr 2010 00:21:38 +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. > > I would prefer to see xhci-hcd changed to register two separate root > hubs. But until that gets done, something like this appears to be > necessary. Agreed. xhci-hcd behavior should comply with USB3.0 spec. The root hub should appear as two separate root hubs. This patch is a temporary workaround. > > 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 5c483fa..96bad49 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))) { > > You've got lots of excess ()'s here; they tend to clutter up the text. I will remove unnecessary parentheses. Thanks. Andiry Xu -- 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