public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Marek Vasut <marex@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [U-Boot,v3,7/8] usb: hub: Reset only usb 2.0 ports
Date: Wed, 24 Apr 2013 02:21:09 +0200	[thread overview]
Message-ID: <201304240221.09472.marex@denx.de> (raw)
In-Reply-To: <1366737791-25292-1-git-send-email-jwerner@chromium.org>

Dear Julius Werner,

> 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.

Ok, I can drop this one.

> > 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);

Best regards,
Marek Vasut

  reply	other threads:[~2013-04-24  0:21 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   ` [U-Boot] [U-Boot,v3,7/8] " Julius Werner
2013-04-24  0:21     ` Marek Vasut [this message]
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=201304240221.09472.marex@denx.de \
    --to=marex@denx.de \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox