Re: [PATCH] usbcore: Do not disable USB3 protocol ports in hub_activate()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux