]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
bootstd: Create a function to reset USB
authorSimon Glass <sjg@chromium.org>
Sun, 1 Sep 2024 22:26:16 +0000 (16:26 -0600)
committerTom Rini <trini@konsulko.com>
Wed, 18 Sep 2024 19:00:59 +0000 (13:00 -0600)
Set up a function for this, since it needs to be used from multiple test
files.

This test file is only used on sandbox, where USB is enabled, so drop
the local declaration of usb_started

Signed-off-by: Simon Glass <sjg@chromium.org>
test/boot/bootdev.c
test/boot/bootstd_common.c
test/boot/bootstd_common.h

index 23ebc61ff52e18972b8eacfed38e8ff5c8699cf3..c635d06ec25d4bf274099f153648d34f5a845436 100644 (file)
 #include <test/ut.h>
 #include "bootstd_common.h"
 
-/* Allow reseting the USB-started flag */
-#if defined(CONFIG_USB_HOST) || defined(CONFIG_USB_GADGET)
-extern bool usb_started;
-#else
-#include <usb.h>
-#endif
-
 /* Check 'bootdev list' command */
 static int bootdev_test_cmd_list(struct unit_test_state *uts)
 {
@@ -197,7 +190,7 @@ static int bootdev_test_order(struct unit_test_state *uts)
        test_set_skip_delays(true);
 
        /* Start up USB which gives us three additional bootdevs */
-       usb_started = false;
+       bootstd_reset_usb();
        ut_assertok(run_command("usb start", 0));
 
        /*
@@ -313,7 +306,7 @@ static int bootdev_test_prio(struct unit_test_state *uts)
        test_set_eth_enable(false);
 
        /* Start up USB which gives us three additional bootdevs */
-       usb_started = false;
+       bootstd_reset_usb();
        ut_assertok(run_command("usb start", 0));
 
        ut_assertok(bootstd_test_drop_bootdev_order(uts));
@@ -352,7 +345,7 @@ static int bootdev_test_hunter(struct unit_test_state *uts)
 {
        struct bootstd_priv *std;
 
-       usb_started = false;
+       bootstd_reset_usb();
        test_set_skip_delays(true);
 
        /* get access to the used hunters */
@@ -392,7 +385,7 @@ static int bootdev_test_cmd_hunt(struct unit_test_state *uts)
        struct bootstd_priv *std;
 
        test_set_skip_delays(true);
-       usb_started = false;
+       bootstd_reset_usb();
 
        /* get access to the used hunters */
        ut_assertok(bootstd_get_priv(&std));
@@ -520,7 +513,7 @@ BOOTSTD_TEST(bootdev_test_bootable, UTF_DM | UTF_SCAN_FDT);
 /* Check hunting for bootdev of a particular priority */
 static int bootdev_test_hunt_prio(struct unit_test_state *uts)
 {
-       usb_started = false;
+       bootstd_reset_usb();
        test_set_skip_delays(true);
 
        ut_assertok(bootdev_hunt_prio(BOOTDEVP_4_SCAN_FAST, false));
@@ -548,7 +541,7 @@ static int bootdev_test_hunt_label(struct unit_test_state *uts)
        struct bootstd_priv *std;
        int mflags;
 
-       usb_started = false;
+       bootstd_reset_usb();
 
        /* get access to the used hunters */
        ut_assertok(bootstd_get_priv(&std));
index e50539500a02f5a96222165e1ab8cff670af7d2e..ff8ed2303b312d38beecb171f11ac0109734406a 100644 (file)
@@ -11,6 +11,7 @@
 #include <dm.h>
 #include <memalign.h>
 #include <mmc.h>
+#include <usb.h>
 #include <linux/log2.h>
 #include <test/suites.h>
 #include <test/ut.h>
@@ -88,6 +89,11 @@ int bootstd_test_check_mmc_hunter(struct unit_test_state *uts)
        return 0;
 }
 
+void bootstd_reset_usb(void)
+{
+       usb_started = false;
+}
+
 int do_ut_bootstd(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
 {
        struct unit_test *tests = UNIT_TEST_SUITE_START(bootstd_test);
index 4a126e43ff44e412465423a58ce687628d5409fd..e29036c897ccba3a03b80c8af6418bc0e688779d 100644 (file)
@@ -53,4 +53,12 @@ int bootstd_setup_for_tests(void);
  */
 int bootstd_test_check_mmc_hunter(struct unit_test_state *uts);
 
+/**
+ * bootstd_reset_usb() - Reset the USB subsystem
+ *
+ * Resets USB so that it can be started (and scanning) again. This is useful in
+ * tests which need to use USB.
+ */
+void bootstd_reset_usb(void);
+
 #endif