drivers/pwm/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
The dev_err message is reporting the incorrect return value ret_tohw,
it should be reporting the value in ret_fromhw. Fix this by using
ret_fromhw instead of ret_tohw.
Fixes: 6c5126c6406d ("pwm: Provide new consumer API functions for waveforms")
Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
---
drivers/pwm/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c
index ec4112e6209a..ea2ccf42e814 100644
--- a/drivers/pwm/core.c
+++ b/drivers/pwm/core.c
@@ -276,7 +276,7 @@ int pwm_round_waveform_might_sleep(struct pwm_device *pwm, struct pwm_waveform *
if (IS_ENABLED(CONFIG_PWM_DEBUG) && ret_fromhw > 0)
dev_err(&chip->dev, "Unexpected return value from __pwm_round_waveform_fromhw: requested %llu/%llu [+%llu], return value %d\n",
- wf_req.duty_length_ns, wf_req.period_length_ns, wf_req.duty_offset_ns, ret_tohw);
+ wf_req.duty_length_ns, wf_req.period_length_ns, wf_req.duty_offset_ns, ret_fromhw);
if (IS_ENABLED(CONFIG_PWM_DEBUG) &&
(ret_tohw == 0) != pwm_check_rounding(&wf_req, wf))
--
2.51.0
On Tue, Sep 02, 2025 at 02:03:48PM +0100, Colin Ian King wrote:
> The dev_err message is reporting the incorrect return value ret_tohw,
> it should be reporting the value in ret_fromhw. Fix this by using
> ret_fromhw instead of ret_tohw.
>
> Fixes: 6c5126c6406d ("pwm: Provide new consumer API functions for waveforms")
> Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
> ---
> drivers/pwm/core.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/pwm/core.c b/drivers/pwm/core.c
> index ec4112e6209a..ea2ccf42e814 100644
> --- a/drivers/pwm/core.c
> +++ b/drivers/pwm/core.c
> @@ -276,7 +276,7 @@ int pwm_round_waveform_might_sleep(struct pwm_device *pwm, struct pwm_waveform *
>
> if (IS_ENABLED(CONFIG_PWM_DEBUG) && ret_fromhw > 0)
> dev_err(&chip->dev, "Unexpected return value from __pwm_round_waveform_fromhw: requested %llu/%llu [+%llu], return value %d\n",
> - wf_req.duty_length_ns, wf_req.period_length_ns, wf_req.duty_offset_ns, ret_tohw);
> + wf_req.duty_length_ns, wf_req.period_length_ns, wf_req.duty_offset_ns, ret_fromhw);
>
> if (IS_ENABLED(CONFIG_PWM_DEBUG) &&
> (ret_tohw == 0) != pwm_check_rounding(&wf_req, wf))
Indeed, thanks for the fix. I added it to my pwm/fixes branch at
https://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux.git. I
didn't made my mind up yet if the patches contained in there are
relevant enough to send it to Linus before 6.17.
Best regards
Uwe
© 2016 - 2026 Red Hat, Inc.