From: Faiz Abbas <faiz_abbas@ti.com>
Date: Mon, 3 Aug 2020 06:05:05 +0000 (+0530)
Subject: spl: usb: Only init usb once
X-Git-Tag: v2025.01-rc5-pxa1908~2256^2~36
X-Git-Url: http://git.dujemihanovic.xyz/img/static/gitweb.css?a=commitdiff_plain;h=39388aebed67a64d1bac8cd6652e8f418c116252;p=u-boot.git

spl: usb: Only init usb once

usb_init() may be called multiple times for fetching multiple images
from SPL. Skip reinitializing USB if its already been done

Signed-off-by: Faiz Abbas <faiz_abbas@ti.com>
---

diff --git a/common/spl/spl_usb.c b/common/spl/spl_usb.c
index 92ae96f66e..3648de3492 100644
--- a/common/spl/spl_usb.c
+++ b/common/spl/spl_usb.c
@@ -22,11 +22,16 @@ int spl_usb_load(struct spl_image_info *spl_image,
 		 struct spl_boot_device *bootdev, int partition,
 		 const char *filename)
 {
-	int err;
+	int err = 0;
 	struct blk_desc *stor_dev;
+	static bool usb_init_pending = true;
+
+	if (usb_init_pending) {
+		usb_stop();
+		err = usb_init();
+		usb_init_pending = false;
+	}
 
-	usb_stop();
-	err = usb_init();
 	if (err) {
 #ifdef CONFIG_SPL_LIBCOMMON_SUPPORT
 		printf("%s: usb init failed: err - %d\n", __func__, err);