On sam., août 19, 2023 at 16:23, Marek Vasut <[email protected]> wrote: > In case anything errors out during the DFU registration, detach > the controller instead of bailing out right away. This way, the > controller can be reattached on next attempt. > > Signed-off-by: Marek Vasut <[email protected]> > --- > Cc: Angus Ainslie <[email protected]> > Cc: Dmitrii Merkurev <[email protected]> > Cc: Eddie Cai <[email protected]> > Cc: Kever Yang <[email protected]> > Cc: Lukasz Majewski <[email protected]> > Cc: Miquel Raynal <[email protected]> > Cc: Mattijs Korpershoek <[email protected]> > Cc: Nishanth Menon <[email protected]> > Cc: Patrice Chotard <[email protected]> > Cc: Patrick Delaunay <[email protected]> > Cc: Philipp Tomsich <[email protected]> > Cc: Simon Glass <[email protected]> > Cc: Stefan Roese <[email protected]> > Cc: [email protected] > --- > common/dfu.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-)
Reviewed-by: Mattijs Korpershoek <[email protected]> > > diff --git a/common/dfu.c b/common/dfu.c > index 96190889ab7..32fba84da16 100644 > --- a/common/dfu.c > +++ b/common/dfu.c > @@ -34,7 +34,8 @@ int run_usb_dnl_gadget(int usbctrl_index, char > *usb_dnl_gadget) > ret = g_dnl_register(usb_dnl_gadget); > if (ret) { > pr_err("g_dnl_register failed"); > - return CMD_RET_FAILURE; > + ret = CMD_RET_FAILURE; > + goto err_detach; > } > > #ifdef CONFIG_DFU_TIMEOUT > @@ -106,6 +107,7 @@ int run_usb_dnl_gadget(int usbctrl_index, char > *usb_dnl_gadget) > } > exit: > g_dnl_unregister(); > +err_detach: > usb_gadget_release(usbctrl_index); > > if (dfu_reset) > -- > 2.40.1

