All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hans de Goede <hdegoede@redhat.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 1/6] usb: legacy_hub_port_reset(): Speedup hub reset handling
Date: Thu, 10 Mar 2016 19:51:13 +0100	[thread overview]
Message-ID: <56E1C221.3030403@redhat.com> (raw)
In-Reply-To: <1457625012-1268-2-git-send-email-sr@denx.de>

Hi,

On 10-03-16 16:50, Stefan Roese wrote:
> Start with a short USB hub reset delay of 10ms. This can be enough for
> some configurations.
>
> The 2nd delay at the of the loop is completely removed. Since the delay
> hasn't been long enough, a longer delay time of 200ms is assigned. And
> will be used in the next loop round.
>
> This hub reset handling is also used in the v4.4 Linux USB driver,
> hub_port_reset().
>
> Signed-off-by: Stefan Roese <sr@denx.de>
> Cc: Simon Glass <sjg@chromium.org>
> Cc: Hans de Goede <hdegoede@redhat.com>
> Cc: Stephen Warren <swarren@nvidia.com>
> Cc: Marek Vasut <marex@denx.de>

Since this is good enough for the kernel it should be good enough for us:

Acked-by: Hans de Goede <hdegoede@redhat.com>

Regards,

Hans

> ---
>
>   common/usb_hub.c | 9 +++++++--
>   1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/common/usb_hub.c b/common/usb_hub.c
> index e1de813..10fdd3c 100644
> --- a/common/usb_hub.c
> +++ b/common/usb_hub.c
> @@ -46,6 +46,9 @@ DECLARE_GLOBAL_DATA_PTR;
>
>   #define USB_BUFSIZ	512
>
> +#define HUB_SHORT_RESET_TIME	10
> +#define HUB_LONG_RESET_TIME	200
> +
>   /* TODO(sjg at chromium.org): Remove this when CONFIG_DM_USB is defined */
>   static struct usb_hub_device hub_dev[USB_MAX_HUB];
>   static int usb_hub_index;
> @@ -164,6 +167,7 @@ int legacy_hub_port_reset(struct usb_device *dev, int port,
>   	int err, tries;
>   	ALLOC_CACHE_ALIGN_BUFFER(struct usb_port_status, portsts, 1);
>   	unsigned short portstatus, portchange;
> +	int delay = HUB_SHORT_RESET_TIME; /* start with short reset delay */
>
>   #ifdef CONFIG_DM_USB
>   	debug("%s: resetting '%s' port %d...\n", __func__, dev->dev->name,
> @@ -176,7 +180,7 @@ int legacy_hub_port_reset(struct usb_device *dev, int port,
>   		if (err < 0)
>   			return err;
>
> -		mdelay(200);
> +		mdelay(delay);
>
>   		if (usb_get_port_status(dev, port + 1, portsts) < 0) {
>   			debug("get_port_status failed status %lX\n",
> @@ -215,7 +219,8 @@ int legacy_hub_port_reset(struct usb_device *dev, int port,
>   		if (portstatus & USB_PORT_STAT_ENABLE)
>   			break;
>
> -		mdelay(200);
> +		/* Switch to long reset delay for the next round */
> +		delay = HUB_LONG_RESET_TIME;
>   	}
>
>   	if (tries == MAX_TRIES) {
>

  reply	other threads:[~2016-03-10 18:51 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-10 15:50 [U-Boot] [PATCH 0/6] usb: Reduce USB scanning time Stefan Roese
2016-03-10 15:50 ` [U-Boot] [PATCH 1/6] usb: legacy_hub_port_reset(): Speedup hub reset handling Stefan Roese
2016-03-10 18:51   ` Hans de Goede [this message]
2016-03-11  6:37     ` Stefan Roese
2016-03-11  0:06   ` Stephen Warren
2016-03-10 15:50 ` [U-Boot] [PATCH 2/6] usb: Remove 200 ms delay in usb_hub_port_connect_change() Stefan Roese
2016-03-10 18:55   ` Hans de Goede
2016-03-11  6:34     ` Stefan Roese
2016-03-11  6:35     ` Stefan Roese
2016-03-11  0:06   ` Stephen Warren
2016-03-10 15:50 ` [U-Boot] [PATCH 3/6] usb: Remove 1 second per port timeout in usb_hub_configure() Stefan Roese
2016-03-10 18:59   ` Hans de Goede
2016-03-10 15:50 ` [U-Boot] [PATCH 4/6] usb: usb_hub_power_on(): Use 100ms power-on delay instead of 1 sec (optionally) Stefan Roese
2016-03-10 19:12   ` Hans de Goede
2016-03-11  9:05     ` Stefan Roese
2016-03-11 10:13     ` Stefan Roese
2016-03-11 10:32       ` Hans de Goede
2016-03-11 10:42         ` Stefan Roese
2016-03-10 15:50 ` [U-Boot] [PATCH 5/6] usb: Don't reset the USB hub a 2nd time Stefan Roese
2016-03-10 19:13   ` Hans de Goede
2016-03-11  6:43     ` Stefan Roese
2016-03-11  0:07   ` Stephen Warren
2016-03-10 15:50 ` [U-Boot] [PATCH 6/6] usb: Implement static USB port configuration to speed up USB scanning Stefan Roese
2016-03-10 19:18   ` Hans de Goede
2016-03-11 15:08     ` Stefan Roese

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=56E1C221.3030403@redhat.com \
    --to=hdegoede@redhat.com \
    --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.