diff options
| author | Uwe Kleine-König <u.kleine-koenig@baylibre.com> | 2025-04-30 11:57:46 +0200 |
|---|---|---|
| committer | Stephen Boyd <sboyd@kernel.org> | 2025-06-19 18:09:54 -0700 |
| commit | 6ae97be59c7bce32c83d4cdb39902d64831dc714 (patch) | |
| tree | 902a497f712a907cc8741c234eb9f012761efc6a | |
| parent | 19272b37aa4f83ca52bdf9c16d5d81bdd1354494 (diff) | |
clk: pwm: Let .get_duty_cycle() return the real duty cycle
pwm_get_state() returns the last requested pwm_state which might differ
from what the lowlevel PWM driver actually implemented. For the purpose
of .get_duty_cycle() the latter is the more interesting info, so use
that to determine the output parameter.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
Link: https://lore.kernel.org/r/3db08ded39c09aaa5004b3b8b1238111f199e819.1746006578.git.ukleinek@baylibre.com
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
| -rw-r--r-- | drivers/clk/clk-pwm.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/clk/clk-pwm.c b/drivers/clk/clk-pwm.c index bd4f21c22004..429150bba8cf 100644 --- a/drivers/clk/clk-pwm.c +++ b/drivers/clk/clk-pwm.c @@ -48,8 +48,11 @@ static int clk_pwm_get_duty_cycle(struct clk_hw *hw, struct clk_duty *duty) { struct clk_pwm *clk_pwm = to_clk_pwm(hw); struct pwm_state state; + int ret; - pwm_get_state(clk_pwm->pwm, &state); + ret = pwm_get_state_hw(clk_pwm->pwm, &state); + if (ret) + return ret; duty->num = state.duty_cycle; duty->den = state.period; |
