mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 08:42:12 +02:00
bootstd: usb: Avoid initing USB twice
This causes crashes on some boards, e.g. rockpro64. In any case, we should not do it. Check the usb_started flag to avoid this. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Jonas Karlman <jonas@kwiboo.se> Tested-by: Tom Rini <trini@konsulko.com>
This commit is contained in:
@@ -22,6 +22,9 @@ static int usb_bootdev_bind(struct udevice *dev)
|
||||
|
||||
static int usb_bootdev_hunt(struct bootdev_hunter *info, bool show)
|
||||
{
|
||||
if (usb_started)
|
||||
return 0;
|
||||
|
||||
return usb_init();
|
||||
}
|
||||
|
||||
|
@@ -306,6 +306,7 @@ static int bootdev_test_hunter(struct unit_test_state *uts)
|
||||
{
|
||||
struct bootstd_priv *std;
|
||||
|
||||
usb_started = false;
|
||||
test_set_skip_delays(true);
|
||||
|
||||
/* get access to the used hunters */
|
||||
@@ -346,6 +347,7 @@ static int bootdev_test_cmd_hunt(struct unit_test_state *uts)
|
||||
struct bootstd_priv *std;
|
||||
|
||||
test_set_skip_delays(true);
|
||||
usb_started = false;
|
||||
|
||||
/* get access to the used hunters */
|
||||
ut_assertok(bootstd_get_priv(&std));
|
||||
@@ -474,6 +476,7 @@ BOOTSTD_TEST(bootdev_test_bootable, UT_TESTF_DM | UT_TESTF_SCAN_FDT);
|
||||
/* Check hunting for bootdev of a particular priority */
|
||||
static int bootdev_test_hunt_prio(struct unit_test_state *uts)
|
||||
{
|
||||
usb_started = false;
|
||||
test_set_skip_delays(true);
|
||||
|
||||
console_record_reset_enable();
|
||||
@@ -502,6 +505,8 @@ static int bootdev_test_hunt_label(struct unit_test_state *uts)
|
||||
struct bootstd_priv *std;
|
||||
int mflags;
|
||||
|
||||
usb_started = false;
|
||||
|
||||
/* get access to the used hunters */
|
||||
ut_assertok(bootstd_get_priv(&std));
|
||||
|
||||
|
Reference in New Issue
Block a user