Handle the second USB enumeration only when the flashlayout is received
and when phase is PHASE_FLASHLAYOUT. This patch removes the call of
stm32prog_next_phase as it is already done in stm32prog_dfu_init().

Signed-off-by: Patrick Delaunay <[email protected]>
---

 arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_usb.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_usb.c 
b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_usb.c
index bc44d9fc8f..d4a3f7ea16 100644
--- a/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_usb.c
+++ b/arch/arm/mach-stm32mp/cmd_stm32prog/stm32prog_usb.c
@@ -207,13 +207,10 @@ bool stm32prog_usb_loop(struct stm32prog_data *data, int 
dev)
 
        if (stm32prog_data->phase == PHASE_FLASHLAYOUT) {
                ret = run_usb_dnl_gadget(dev, "usb_dnl_dfu");
-               if (ret || stm32prog_data->phase == PHASE_DO_RESET)
+               if (ret || stm32prog_data->phase != PHASE_FLASHLAYOUT)
                        return ret;
                /* prepare the second enumeration with the FlashLayout */
-               if (stm32prog_data->phase == PHASE_FLASHLAYOUT)
-                       stm32prog_dfu_init(data);
-               /* found next selected partition */
-               stm32prog_next_phase(data);
+               stm32prog_dfu_init(data);
        }
 
        ret = run_usb_dnl_gadget(dev, "usb_dnl_dfu");
-- 
2.17.1

Reply via email to