[PATCH 09/17] dfu: Detach the controller on error
Mattijs Korpershoek
mkorpershoek at baylibre.com
Tue Aug 22 18:32:35 CEST 2023
On sam., août 19, 2023 at 16:23, Marek Vasut <marex at denx.de> 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 <marex at denx.de>
> ---
> Cc: Angus Ainslie <angus at akkea.ca>
> Cc: Dmitrii Merkurev <dimorinny at google.com>
> Cc: Eddie Cai <eddie.cai.linux at gmail.com>
> Cc: Kever Yang <kever.yang at rock-chips.com>
> Cc: Lukasz Majewski <lukma at denx.de>
> Cc: Miquel Raynal <miquel.raynal at bootlin.com>
> Cc: Mattijs Korpershoek <mkorpershoek at baylibre.com>
> Cc: Nishanth Menon <nm at ti.com>
> Cc: Patrice Chotard <patrice.chotard at foss.st.com>
> Cc: Patrick Delaunay <patrick.delaunay at foss.st.com>
> Cc: Philipp Tomsich <philipp.tomsich at vrull.eu>
> Cc: Simon Glass <sjg at chromium.org>
> Cc: Stefan Roese <sr at denx.de>
> Cc: kernel at puri.sm
> ---
> common/dfu.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
Reviewed-by: Mattijs Korpershoek <mkorpershoek at baylibre.com>
>
> 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
More information about the U-Boot
mailing list