diff --git a/board/qca/arm/common/board_init.c b/board/qca/arm/common/board_init.c index 534c5d19b8..55ff0fc2f3 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"); } #ifndef CONFIG_IPQ9574_RUMI 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 */ 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; } /*