All of lore.kernel.org
 help / color / mirror / Atom feed
From: Julius Werner <jwerner@chromium.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [U-Boot,v3,7/8] usb: hub: Reset only usb 2.0 ports
Date: Tue, 23 Apr 2013 10:23:11 -0700	[thread overview]
Message-ID: <1366737791-25292-1-git-send-email-jwerner@chromium.org> (raw)
In-Reply-To: <1365764680-10917-8-git-send-email-gautam.vivek@samsung.com>

Sorry, forgot this one yesterday. I would consider to just drop/revert
this patch entirely. It's not wrong, but it adds complexity where it is
not needed. You don't have to reset SuperSpeed devices, but it shouldn't
hurt either and from what I can tell Linux does it as well.

> As per XHCI specifications USB 3.0 protocol ports attempt
> to advance to 'Enabled' state; however USB 2.0 protocol ports
> require software reset to advance them to 'Enabled' state.
> Thereby, inferring that software need to reset USB 2.0 protocol
> ports invariably (as per EHCI spec or xHCI spec).
> 
> Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
> 
> ---
> This patch added in V3(current-version) of this patch-series.
> 
>  common/usb_hub.c |   23 +++++++++++++++++++----
>  1 files changed, 19 insertions(+), 4 deletions(-)
> 
> diff --git a/common/usb_hub.c b/common/usb_hub.c
> index 1e225e6..eedbcf2 100644
> --- a/common/usb_hub.c
> +++ b/common/usb_hub.c
> @@ -233,6 +233,7 @@ void usb_hub_port_connect_change(struct usb_device *dev, int port)
>  	struct usb_device *usb;
>  	ALLOC_CACHE_ALIGN_BUFFER(struct usb_port_status, portsts, 1);
>  	unsigned short portstatus;
> +	uint32_t do_port_reset = 1;
>  
>  	/* Check status */
>  	if (usb_get_port_status(dev, port + 1, portsts) < 0) {
> @@ -246,6 +247,9 @@ void usb_hub_port_connect_change(struct usb_device *dev, int port)
>  	      le16_to_cpu(portsts->wPortChange),
>  	      portspeed(portstatus));
>  
> +	if (portstatus & (1 << USB_PORT_FEAT_SUPERSPEED))
> +		do_port_reset = 0;
> +
>  	/* Clear the connection change status */
>  	usb_clear_port_feature(dev, port + 1, USB_PORT_FEAT_C_CONNECTION);
>  
> @@ -259,10 +263,21 @@ void usb_hub_port_connect_change(struct usb_device *dev, int port)
>  	}
>  	mdelay(200);
>  
> -	/* Reset the port */
> -	if (hub_port_reset(dev, port, &portstatus) < 0) {
> -		printf("cannot reset port %i!?\n", port + 1);
> -		return;
> +	/*
> +	 * Reset the port:
> +	 * As per xHCI protocol, USB 3.0 devices do not require
> +	 * a port reset, however USB 2.0 device do require the same
> +	 * to let ports proceed to 'enabled' state
> +	 *
> +	 * XXX: Will this break EHCI ??
> +	 * probably not, above condition for 'do_port_reset' checks for
> +	 * speed, and for EHCI it can't reach Super speed anyways.
> +	 */
> +	if (do_port_reset) {
> +		if (hub_port_reset(dev, port, &portstatus) < 0) {
> +			printf("cannot reset port %i!?\n", port + 1);
> +			return;
> +		}
>  	}
>  
>  	mdelay(200);

  reply	other threads:[~2013-04-23 17:23 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-12 11:04 [U-Boot] [PATCH v3 0/8] usb: ss: Some fixes and cleanup for USB super-speed support Vivek Gautam
2013-04-12 11:04 ` [U-Boot] [PATCH v3 1/8] usb: common: Weed out USB_**_PRINTFs from usb framework Vivek Gautam
2013-04-12 11:04 ` [U-Boot] [PATCH v3 2/8] USB: Some cleanup prior to USB 3.0 interface addition Vivek Gautam
2013-04-12 11:04 ` [U-Boot] [PATCH v3 3/8] usb: hub: Power-cycle on root-hub ports Vivek Gautam
2013-04-19 19:00   ` [U-Boot] [U-Boot, v3, " Julius Werner
2013-04-22  8:21     ` Vivek Gautam
2013-04-22 22:02       ` Julius Werner
2013-04-23  6:45         ` Vivek Gautam
2013-04-12 11:04 ` [U-Boot] [PATCH v3 4/8] usb: Update device class in usb device's descriptor Vivek Gautam
2013-04-19 18:39   ` [U-Boot] [U-Boot, v3, " Julius Werner
2013-04-12 11:04 ` [U-Boot] [PATCH v3 5/8] usb: hub: Fix enumration timeout Vivek Gautam
2013-04-12 11:04 ` [U-Boot] [PATCH v3 6/8] USB: SS: Add support for Super Speed USB interface Vivek Gautam
2013-04-19 18:22   ` [U-Boot] [U-Boot, v3, " Julius Werner
2013-04-19 18:38     ` Marek Vasut
2013-04-19 20:32       ` Julius Werner
2013-04-20 11:57         ` Marek Vasut
2013-04-22  6:46           ` Vivek Gautam
2013-04-23  2:24             ` Marek Vasut
2013-04-23  6:46               ` Vivek Gautam
2013-04-22  6:43     ` Vivek Gautam
2013-04-22 22:14       ` Julius Werner
2013-04-23  4:39         ` Vivek Gautam
2013-04-12 11:04 ` [U-Boot] [PATCH v3 7/8] usb: hub: Reset only usb 2.0 ports Vivek Gautam
2013-04-23 17:23   ` Julius Werner [this message]
2013-04-24  0:21     ` [U-Boot] [U-Boot,v3,7/8] " Marek Vasut
2013-04-24  6:08       ` Vivek Gautam
2013-04-30 12:24         ` Vivek Gautam
2013-04-30 17:11           ` Marek Vasut
2013-04-12 11:04 ` [U-Boot] [PATCH v3 8/8] usb: common: Use a global macro for 'min3' Vivek Gautam
2013-04-14 17:11   ` Marek Vasut
2013-04-19  9:38     ` [U-Boot] [PATCH] usb: common: Use a global definition " Vivek Gautam
2013-04-19 11:29       ` Marek Vasut
2013-04-22 13:45         ` Tom Rini
2013-04-24  6:19           ` Vivek Gautam
2013-04-24  6:21             ` Vivek Gautam
2013-04-24 12:03               ` Marek Vasut
2013-04-14 17:14 ` [U-Boot] [PATCH v3 0/8] usb: ss: Some fixes and cleanup for USB super-speed support Marek Vasut
2013-04-18  6:25   ` Vivek Gautam
2013-04-18 12:38     ` Marek Vasut
2013-04-18 13:08       ` Vivek Gautam
2013-04-14 18:13 ` Marek Vasut
2013-04-18  6:24   ` Vivek Gautam
2013-04-18 10:59     ` Vivek Gautam
2013-04-18 11:08       ` Vivek Gautam
2013-04-18 12:43         ` Marek Vasut
2013-04-18 17:11           ` Julius Werner
2013-04-18 19:15             ` Marek Vasut
2013-04-19  4:51               ` Vivek Gautam

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1366737791-25292-1-git-send-email-jwerner@chromium.org \
    --to=jwerner@chromium.org \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.