[PATCH] pmdomain: bcm: bcm2835: handle genpd provider registration errors

Ulf Hansson ulf.hansson at oss.qualcomm.com
Mon Jul 13 04:06:05 PDT 2026


On Tue, Jun 23, 2026 at 3:59 PM Pengpeng Hou <pengpeng at iscas.ac.cn> wrote:
>
> bcm2835_power_probe() initializes all power domains and then registers
> the onecell genpd provider, but ignores of_genpd_add_provider_onecell()
> failures. Probe can therefore return success even though no provider was
> published.
>
> Check the provider registration return value and jump to the existing
> cleanup path on failure.
>
> Fixes: 670c672608a1 ("soc: bcm: bcm2835-pm: Add support for power domains under a new binding.")
> Signed-off-by: Pengpeng Hou <pengpeng at iscas.ac.cn>

Applied for next, thanks!

Kind regards
Uffe


> ---
>  drivers/pmdomain/bcm/bcm2835-power.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/pmdomain/bcm/bcm2835-power.c b/drivers/pmdomain/bcm/bcm2835-power.c
> index b76d74e38..68a0a7a8c 100644
> --- a/drivers/pmdomain/bcm/bcm2835-power.c
> +++ b/drivers/pmdomain/bcm/bcm2835-power.c
> @@ -677,7 +677,12 @@ static int bcm2835_power_probe(struct platform_device *pdev)
>         if (ret)
>                 goto fail;
>
> -       of_genpd_add_provider_onecell(dev->parent->of_node, &power->pd_xlate);
> +       ret = of_genpd_add_provider_onecell(dev->parent->of_node,
> +                                           &power->pd_xlate);
> +       if (ret) {
> +               dev_err_probe(dev, ret, "failed to add genpd provider\n");
> +               goto fail;
> +       }
>
>         dev_info(dev, "Broadcom BCM2835 power domains driver");
>         return 0;
> --
> 2.50.1 (Apple Git-155)



More information about the linux-arm-kernel mailing list