aboutsummaryrefslogtreecommitdiff
path: root/drivers/usb/host/usb-uclass.c
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2023-09-20 07:29:49 -0600
committerBin Meng <bmeng@tinylab.org>2023-09-22 06:05:40 +0800
commit1b1d36ec58f43585081b387ee44053278e480171 (patch)
tree20e6b96ee8dfb25936c405996fab16efc9f2236f /drivers/usb/host/usb-uclass.c
parent8c11d19e7599442d0325f79c7c7705b951f821d4 (diff)
downloadu-boot-1b1d36ec58f43585081b387ee44053278e480171.zip
u-boot-1b1d36ec58f43585081b387ee44053278e480171.tar.gz
u-boot-1b1d36ec58f43585081b387ee44053278e480171.tar.bz2
bootstd: Keep track of use of usb stop
When 'usb stop' is run, doing 'bootflow scan' does not run the USB hunter again so does not see any devices. Fix this by telling bootstd about the state of USB. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/usb/host/usb-uclass.c')
-rw-r--r--drivers/usb/host/usb-uclass.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/usb/host/usb-uclass.c b/drivers/usb/host/usb-uclass.c
index e5fe949..a1cd0ad 100644
--- a/drivers/usb/host/usb-uclass.c
+++ b/drivers/usb/host/usb-uclass.c
@@ -9,6 +9,7 @@
#define LOG_CATEGORY UCLASS_USB
#include <common.h>
+#include <bootdev.h>
#include <dm.h>
#include <errno.h>
#include <log.h>
@@ -208,6 +209,13 @@ int usb_stop(void)
#ifdef CONFIG_USB_STORAGE
usb_stor_reset();
#endif
+ if (CONFIG_IS_ENABLED(BOOTSTD)) {
+ int ret;
+
+ ret = bootdev_unhunt(UCLASS_USB);
+ if (IS_ENABLED(CONFIG_BOOTSTD_FULL) && ret && ret != -EALREADY)
+ printf("failed to unhunt USB (err=%dE)\n", ret);
+ }
uc_priv->companion_device_count = 0;
usb_started = 0;