From 590a4b2d9a86f03e955d4d8c1a7f47b69dd44759 Mon Sep 17 00:00:00 2001 From: Karthick Shanmugham Date: Wed, 11 Aug 2021 15:56:44 +0530 Subject: [PATCH 1/2] ipq806x: Disabling usb_init in recovery path for AK alone This patch skips the usb_init during recovery path for AK platform alone. No checks for usb_init for all other platforms Change-Id: I3720f7e159d95bb6656df06ec9aeccfd02f3db01 Signed-off-by: Karthick Shanmugham --- board/qca/arm/common/board_init.c | 8 +++----- board/qca/arm/ipq806x/ipq806x.c | 6 ++++++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/board/qca/arm/common/board_init.c b/board/qca/arm/common/board_init.c index 5410f71fe4..799d487cd2 100644 --- a/board/qca/arm/common/board_init.c +++ b/board/qca/arm/common/board_init.c @@ -214,11 +214,9 @@ int board_init(void) #endif } #endif - if (sfi->flash_type != SMEM_BOOT_NO_FLASH) { - ret = ipq_board_usb_init(); - if (ret < 0) { - printf("WARN: ipq_board_usb_init failed\n"); - } + ret = ipq_board_usb_init(); + if (ret < 0) { + printf("WARN: ipq_board_usb_init failed\n"); } aquantia_phy_reset_init(); diff --git a/board/qca/arm/ipq806x/ipq806x.c b/board/qca/arm/ipq806x/ipq806x.c index bec1e1a3f2..cc865c8374 100644 --- a/board/qca/arm/ipq806x/ipq806x.c +++ b/board/qca/arm/ipq806x/ipq806x.c @@ -949,6 +949,12 @@ int ipq_board_usb_init(void) int i; unsigned int ipq_base; + uint32_t flash_type; + + /*Return if it is recovery path*/ + if (ipq_smem_get_boot_flash(&flash_type) < 0) + return -1; + /* Configure the usb core clock */ usb_ss_core_clock_config(0, 1, 5, 32); /* Configure the usb core clock */ From 89f08320cb2d940a7d28b76815711d13c3abda79 Mon Sep 17 00:00:00 2001 From: Vandhiadevan Karunamoorthy Date: Thu, 12 Aug 2021 14:06:27 +0530 Subject: [PATCH 2/2] common: ubi: fix ubi_initialized flag handling This patch clears the ubi_initialized flag after doing ubi_exit since there can be chance to ubi_int failure, but still ubi_initialized flag will be set. This will result in doing ubi_exit again and uboot crash. This patch also doing put_mtd_device after deleting mtd partition to make the ref count to zero. Signed-off-by: Vandhiadevan Karunamoorthy Change-Id: I5a875ec82266db6b09045602b5d1b3fe47d4bd58 --- common/cmd_ubi.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/common/cmd_ubi.c b/common/cmd_ubi.c index 394a169a4a..e00dd66d55 100644 --- a/common/cmd_ubi.c +++ b/common/cmd_ubi.c @@ -486,6 +486,8 @@ int ubi_part(char *part_name, const char *vid_header_offset) if (ubi_initialized) { ubi_exit(); del_mtd_partitions(ubi_dev.mtd_info); + put_mtd_device(ubi_dev.mtd_info); + ubi_initialized = 0; } /*