lkml.org 
[lkml]   [2021]   [Jul]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 027/167] pwm: sprd: Ensure configuring period and duty_cycle isnt wrongly skipped
    Date
    From: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

    [ Upstream commit 65e2e6c1c20104ed19060a38f4edbf14e9f9a9a5 ]

    As the last call to sprd_pwm_apply() might have exited early if
    state->enabled was false, the values for period and duty_cycle stored in
    pwm->state might not have been written to hardware and it must be
    ensured that they are configured before enabling the PWM.

    Fixes: 8aae4b02e8a6 ("pwm: sprd: Add Spreadtrum PWM support")
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/pwm/pwm-sprd.c | 11 ++++-------
    1 file changed, 4 insertions(+), 7 deletions(-)

    diff --git a/drivers/pwm/pwm-sprd.c b/drivers/pwm/pwm-sprd.c
    index 5123d948efd6..9eeb59cb81b6 100644
    --- a/drivers/pwm/pwm-sprd.c
    +++ b/drivers/pwm/pwm-sprd.c
    @@ -180,13 +180,10 @@ static int sprd_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
    }
    }

    - if (state->period != cstate->period ||
    - state->duty_cycle != cstate->duty_cycle) {
    - ret = sprd_pwm_config(spc, pwm, state->duty_cycle,
    - state->period);
    - if (ret)
    - return ret;
    - }
    + ret = sprd_pwm_config(spc, pwm, state->duty_cycle,
    + state->period);
    + if (ret)
    + return ret;

    sprd_pwm_write(spc, pwm->hwpwm, SPRD_PWM_ENABLE, 1);
    } else if (cstate->enabled) {
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-07-26 18:44    [W:3.275 / U:0.120 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site