mirror of
https://xff.cz/git/u-boot/
synced 2025-09-20 10:02:07 +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)
|
static int usb_bootdev_hunt(struct bootdev_hunter *info, bool show)
|
||||||
{
|
{
|
||||||
|
if (usb_started)
|
||||||
|
return 0;
|
||||||
|
|
||||||
return usb_init();
|
return usb_init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -306,6 +306,7 @@ static int bootdev_test_hunter(struct unit_test_state *uts)
|
|||||||
{
|
{
|
||||||
struct bootstd_priv *std;
|
struct bootstd_priv *std;
|
||||||
|
|
||||||
|
usb_started = false;
|
||||||
test_set_skip_delays(true);
|
test_set_skip_delays(true);
|
||||||
|
|
||||||
/* get access to the used hunters */
|
/* 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;
|
struct bootstd_priv *std;
|
||||||
|
|
||||||
test_set_skip_delays(true);
|
test_set_skip_delays(true);
|
||||||
|
usb_started = false;
|
||||||
|
|
||||||
/* get access to the used hunters */
|
/* get access to the used hunters */
|
||||||
ut_assertok(bootstd_get_priv(&std));
|
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 */
|
/* Check hunting for bootdev of a particular priority */
|
||||||
static int bootdev_test_hunt_prio(struct unit_test_state *uts)
|
static int bootdev_test_hunt_prio(struct unit_test_state *uts)
|
||||||
{
|
{
|
||||||
|
usb_started = false;
|
||||||
test_set_skip_delays(true);
|
test_set_skip_delays(true);
|
||||||
|
|
||||||
console_record_reset_enable();
|
console_record_reset_enable();
|
||||||
@@ -502,6 +505,8 @@ static int bootdev_test_hunt_label(struct unit_test_state *uts)
|
|||||||
struct bootstd_priv *std;
|
struct bootstd_priv *std;
|
||||||
int mflags;
|
int mflags;
|
||||||
|
|
||||||
|
usb_started = false;
|
||||||
|
|
||||||
/* get access to the used hunters */
|
/* get access to the used hunters */
|
||||||
ut_assertok(bootstd_get_priv(&std));
|
ut_assertok(bootstd_get_priv(&std));
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user