diff options
author | Simon Glass <sjg@chromium.org> | 2015-11-08 23:47:44 -0700 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2015-11-19 20:27:50 -0700 |
commit | 3884c98c32cd5fb5b5b42185d5d0575659434bbf (patch) | |
tree | e19f19bdea17ed69e35014aed74df9963500bb7f | |
parent | 9723563aa821e9c9b881dfe6a082f6301ca69826 (diff) | |
download | u-boot-3884c98c32cd5fb5b5b42185d5d0575659434bbf.tar.gz u-boot-3884c98c32cd5fb5b5b42185d5d0575659434bbf.tar.bz2 u-boot-3884c98c32cd5fb5b5b42185d5d0575659434bbf.zip |
dm: usb: Avoid time delays in sandbox tests
Currently the USB tests take around two seconds to run. Remove these
unnecessary time delays so that the tests run quickly.
Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r-- | common/usb_hub.c | 10 | ||||
-rw-r--r-- | test/dm/test-main.c | 2 | ||||
-rw-r--r-- | test/dm/usb.c | 3 |
3 files changed, 14 insertions, 1 deletions
diff --git a/common/usb_hub.c b/common/usb_hub.c index a92c9fb73d..e1de813adf 100644 --- a/common/usb_hub.c +++ b/common/usb_hub.c @@ -31,6 +31,9 @@ #include <asm/unaligned.h> #include <linux/ctype.h> #include <asm/byteorder.h> +#ifdef CONFIG_SANDBOX +#include <asm/state.h> +#endif #include <asm/unaligned.h> #include <dm/root.h> @@ -466,7 +469,12 @@ static int usb_hub_configure(struct usb_device *dev) unsigned short portstatus, portchange; int ret; ulong start = get_timer(0); + uint delay = CONFIG_SYS_HZ; +#ifdef CONFIG_SANDBOX + if (state_get_skip_delays()) + delay = 0; +#endif #ifdef CONFIG_DM_USB debug("\n\nScanning '%s' port %d\n", dev->dev->name, i + 1); #else @@ -498,7 +506,7 @@ static int usb_hub_configure(struct usb_device *dev) if (portstatus & USB_PORT_STAT_CONNECTION) break; - } while (get_timer(start) < CONFIG_SYS_HZ * 1); + } while (get_timer(start) < delay); if (ret < 0) continue; diff --git a/test/dm/test-main.c b/test/dm/test-main.c index 0e43ab9548..a36a9c04ab 100644 --- a/test/dm/test-main.c +++ b/test/dm/test-main.c @@ -9,6 +9,7 @@ #include <dm.h> #include <errno.h> #include <malloc.h> +#include <asm/state.h> #include <dm/test.h> #include <dm/root.h> #include <dm/uclass-internal.h> @@ -113,6 +114,7 @@ static int dm_test_main(const char *test_name) ut_assertok(dm_scan_fdt(gd->fdt_blob, false)); test->func(uts); + state_set_skip_delays(false); ut_assertok(dm_test_destroy(uts)); } diff --git a/test/dm/usb.c b/test/dm/usb.c index 9939d837a9..4300bbd5c9 100644 --- a/test/dm/usb.c +++ b/test/dm/usb.c @@ -8,6 +8,8 @@ #include <dm.h> #include <usb.h> #include <asm/io.h> +#include <asm/state.h> +#include <dm/device-internal.h> #include <dm/test.h> #include <test/ut.h> @@ -35,6 +37,7 @@ static int dm_test_usb_flash(struct unit_test_state *uts) block_dev_desc_t *dev_desc; char cmp[1024]; + state_set_skip_delays(true); ut_assertok(usb_init()); ut_assertok(uclass_get_device(UCLASS_MASS_STORAGE, 0, &dev)); ut_assertok(get_device("usb", "0", &dev_desc)); |