From: Stefan Roese <sr@denx.de>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 0/4] usb: Reduce USB scanning time
Date: Mon, 14 Mar 2016 11:18:09 +0100 [thread overview]
Message-ID: <1457950693-564-1-git-send-email-sr@denx.de> (raw)
My current x86 platform (Bay Trail, not in mainline yet) has a quite
complex USB infrastructure with many USB hubs. Here the USB scan takes
an incredible huge amount of time:
starting USB...
USB0: USB EHCI 1.00
scanning bus 0 for devices... 9 USB Device(s) found
time: 28.415 seconds
This is of course not acceptable on platforms, where USB needs to get
scanned at every bootup. As this increases the bootup time of this
device by nearly 30 seconds!
This patch series greatly reduces the USB scanning time. This is done
by multiple means:
- Remove or reduce delays and timeouts
- Remove a 2nd reset of the USB hubs
- Change USB port timeout handling and introduce quasi parallel USB
port scanning
As a result, the USB scanning time is greatly reduced:
starting USB...
USB0: USB EHCI 1.00
scanning bus 0 for devices... 9 USB Device(s) found
time: 1.822 seconds
As you can see, the time is reduced from 28.4 to 1.8 seconds!
Please find more details to the changes in the patch description.
Testing and comments welcome!
Thanks,
Stefan
Changes in v3:
- Changed small timeout from 10ms to 20ms as this results in a
much faster USB scanning time (10ms too small and 20ms enough
in many cases)
- Introduced scanning list containing all USB devices of one USB
controller that need to get scanned
- Don't delay in usb_hub_power_on(). Instead skip querying these devices
until the delay time is reached.
Changes in v2:
- Add Acked-by / Tested-by from Hans and Stephen
- Make this change unconditional
- Add Acked-by / Tested-by from Hans and Stephen
- Make this change unconditional
- Add Tested-by from Stephen
- Remove static USB port configuration patch (for now)
Stefan Roese (4):
usb: legacy_hub_port_reset(): Speedup hub reset handling
usb: Remove 200 ms delay in usb_hub_port_connect_change()
usb: Don't reset the USB hub a 2nd time
usb: Change power-on / scanning timeout handling
common/usb.c | 13 +--
common/usb_hub.c | 301 +++++++++++++++++++++++++++++++++++++------------------
include/usb.h | 3 +
3 files changed, 208 insertions(+), 109 deletions(-)
--
2.7.3
next reply other threads:[~2016-03-14 10:18 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-14 10:18 Stefan Roese [this message]
2016-03-14 10:18 ` [U-Boot] [PATCH v3 1/4] usb: legacy_hub_port_reset(): Speedup hub reset handling Stefan Roese
2016-03-14 10:18 ` [U-Boot] [PATCH v3 2/4] usb: Remove 200 ms delay in usb_hub_port_connect_change() Stefan Roese
2016-03-14 17:06 ` Stephen Warren
2016-03-14 10:18 ` [U-Boot] [PATCH v3 3/4] usb: Don't reset the USB hub a 2nd time Stefan Roese
2016-03-14 10:18 ` [U-Boot] [PATCH v3 4/4] usb: Change power-on / scanning timeout handling Stefan Roese
2016-03-14 12:45 ` Hans de Goede
2016-03-14 13:19 ` Stefan Roese
2016-03-14 17:31 ` Stephen Warren
2016-03-14 19:47 ` Hans de Goede
2016-03-15 9:46 ` Stefan Roese
2016-03-15 15:42 ` Stephen Warren
2016-03-14 17:51 ` Stephen Warren
2016-03-15 13:16 ` Stefan Roese
2016-03-15 15:52 ` Stephen Warren
2016-03-15 16:00 ` Stefan Roese
2016-03-15 16:07 ` Stephen Warren
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=1457950693-564-1-git-send-email-sr@denx.de \
--to=sr@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