[PATCH] pwm: tegra: fail probe on reset deassert errors

Pengpeng Hou posted 1 patch 3 weeks, 6 days ago
drivers/pwm/pwm-tegra.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
[PATCH] pwm: tegra: fail probe on reset deassert errors
Posted by Pengpeng Hou 3 weeks, 6 days ago
tegra_pwm_probe() registers the PWM provider after deasserting the reset
control without checking whether the reset controller accepted the request.

Propagate the failure through the existing runtime-PM cleanup path instead
of publishing a PWM controller whose hardware may still be reset.

Fixes: 5dfbd2bd5439 ("pwm: tegra: Add support for reset control")
Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn>
---
 drivers/pwm/pwm-tegra.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/pwm/pwm-tegra.c b/drivers/pwm/pwm-tegra.c
index 5cdbe120ba2d8..d9fa16a7b31f4 100644
--- a/drivers/pwm/pwm-tegra.c
+++ b/drivers/pwm/pwm-tegra.c
@@ -379,7 +379,9 @@ static int tegra_pwm_probe(struct platform_device *pdev)
 		goto put_pm;
 	}
 
-	reset_control_deassert(pc->rst);
+	ret = reset_control_deassert(pc->rst);
+	if (ret)
+		goto put_pm;
 
 	chip->ops = &tegra_pwm_ops;

base-commit: 08dbfad3f5040f5bdb6c529da20d6d4e81fefd72
-- 
2.50.1
Re: [PATCH] pwm: tegra: fail probe on reset deassert errors
Posted by Thierry Reding 2 weeks, 1 day ago
On Sun, Aug 30, 2026 at 08:58:43PM +0800, Pengpeng Hou wrote:
> tegra_pwm_probe() registers the PWM provider after deasserting the reset
> control without checking whether the reset controller accepted the request.
> 
> Propagate the failure through the existing runtime-PM cleanup path instead
> of publishing a PWM controller whose hardware may still be reset.
> 
> Fixes: 5dfbd2bd5439 ("pwm: tegra: Add support for reset control")
> Signed-off-by: Pengpeng Hou <pengpeng@iscas.ac.cn>
> ---
>  drivers/pwm/pwm-tegra.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)

This is probably purely cosmetic since I've never seen a reset fail to
assert or deassert on Tegra (old generations can only fail if the reset
ID is invalid, meaning it's a bug in the framework, and new generations
may fail if for some reason the BPMP is not operational, in which case
the boot will fail much earlier).

Anyway, not saying NAK because from an API point of view it's correct to
check this. However, the Fixes: tag is a bit overkill. This does not
need to be backported to 10 years' worth of stable kernels.

Acked-by: Thierry Reding <treding@nvidia.com>
Re: [PATCH] pwm: tegra: fail probe on reset deassert errors
Posted by Uwe Kleine-König 2 weeks, 2 days ago
Hello,

On Sun, Aug 30, 2026 at 08:58:43PM +0800, Pengpeng Hou wrote:
> diff --git a/drivers/pwm/pwm-tegra.c b/drivers/pwm/pwm-tegra.c
> index 5cdbe120ba2d8..d9fa16a7b31f4 100644
> --- a/drivers/pwm/pwm-tegra.c
> +++ b/drivers/pwm/pwm-tegra.c
> @@ -379,7 +379,9 @@ static int tegra_pwm_probe(struct platform_device *pdev)
>  		goto put_pm;
>  	}
>  
> -	reset_control_deassert(pc->rst);
> +	ret = reset_control_deassert(pc->rst);
> +	if (ret)
> +		goto put_pm;

Alternatively use devm_reset_control_get_exclusive_deasserted() instead
of devm_reset_control_get_exclusive().

Best regards
Uwe