Re: [PATCH] gpio: htc-egpio: use managed gpiochip registration

From: Bartosz Golaszewski

Date: Tue Jun 16 2026 - 03:48:26 EST


On Tue, 16 Jun 2026 02:39:40 +0200, Pengpeng Hou <pengpeng@xxxxxxxxxxx> said:
> egpio_probe() registers each configured gpiochip in a loop but ignores
> registration failures. If one registration fails, probe can continue with
> only part of the provider registered.
>
> Use devm_gpiochip_add_data() and propagate the error. The managed helper
> also removes any earlier chips automatically if probe later fails.
>
> Signed-off-by: Pengpeng Hou <pengpeng@xxxxxxxxxxx>
> ---
> drivers/gpio/gpio-htc-egpio.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpio/gpio-htc-egpio.c b/drivers/gpio/gpio-htc-egpio.c
> index d15423c718d0..1f7d7ac5603f 100644
> --- a/drivers/gpio/gpio-htc-egpio.c
> +++ b/drivers/gpio/gpio-htc-egpio.c
> @@ -268,6 +268,7 @@ static int __init egpio_probe(struct platform_device *pdev)
> struct gpio_chip *chip;
> unsigned int irq, irq_end;
> int i;
> + int ret;
>
> /* Initialize ei data structure. */
> ei = devm_kzalloc(&pdev->dev, struct_size(ei, chip, pdata->num_chips), GFP_KERNEL);
> @@ -326,7 +327,9 @@ static int __init egpio_probe(struct platform_device *pdev)
> chip->base = pdata->chip[i].gpio_base;
> chip->ngpio = pdata->chip[i].num_gpios;
>
> - gpiochip_add_data(chip, &ei->chip[i]);
> + ret = devm_gpiochip_add_data(&pdev->dev, chip, &ei->chip[i]);
> + if (ret)
> + return ret;

Please use dev_err_probe() here.

Bart

> }
>
> /* Set initial pin values */
> --
> 2.50.1 (Apple Git-155)
>
>