[PATCH 11/17] spl: sdp: Detach the controller on error

Mattijs Korpershoek mkorpershoek at baylibre.com
Tue Aug 22 18:44:07 CEST 2023


On sam., août 19, 2023 at 16:24, Marek Vasut <marex at denx.de> wrote:

> In case anything errors out during the SDP transfer, 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
> ---

Reviewed-by: Mattijs Korpershoek <mkorpershoek at baylibre.com>

Nitpick/question below

>  common/spl/spl_sdp.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/common/spl/spl_sdp.c b/common/spl/spl_sdp.c
> index cc4fb4f7cca..f6b99c1af5a 100644
> --- a/common/spl/spl_sdp.c
> +++ b/common/spl/spl_sdp.c
> @@ -25,13 +25,13 @@ static int spl_sdp_load_image(struct spl_image_info *spl_image,
>  	ret = g_dnl_register("usb_dnl_sdp");
>  	if (ret) {
>  		pr_err("SDP dnl register failed: %d\n", ret);
> -		return ret;
> +		goto err_detach;
>  	}
>  
>  	ret = sdp_init(controller_index);
>  	if (ret) {
>  		pr_err("SDP init failed: %d\n", ret);
> -		return -ENODEV;
> +		goto err_detach;

Shouldn't we call g_dnl_unregister(); here since g_dnl_register() was
sucessfully called before?

This would match what's done in common/dfu.c

>  	}
>  
>  	/*
> @@ -42,6 +42,7 @@ static int spl_sdp_load_image(struct spl_image_info *spl_image,
>  	ret = spl_sdp_handle(controller_index, spl_image, bootdev);
>  	debug("SDP ended\n");
>  
> +err_detach:
>  	usb_gadget_release(controller_index);
>  	return ret;
>  }
> -- 
> 2.40.1


More information about the U-Boot mailing list