提交 59438828 编写于 作者: T Thierry Reding 提交者: Xie XiuQi

pwm: sun4i: Remove erroneous else branch

stable inclusion
from stable-5.10.4
commit 4b148744090bef856269f4cd1856f3d16ac9f276
bugzilla: 46903

--------------------------------

[ Upstream commit 6eefb79d ]

Commit d3817a64 ("pwm: sun4i: Remove redundant needs_delay") changed
the logic of an else branch so that the PWM_EN and PWM_CLK_GATING bits
are now cleared if the PWM is to be disabled, whereas previously the
condition was always false, and hence the branch never got executed.

This code is reported causing backlight issues on boards based on the
Allwinner A20 SoC. Fix this by removing the else branch, which restores
the behaviour prior to the offending commit.

Note that the PWM_EN and PWM_CLK_GATING bits still get cleared later in
sun4i_pwm_apply() if the PWM is to be disabled.

Fixes: d3817a64 ("pwm: sun4i: Remove redundant needs_delay")
Reported-by: NTaras Galchenko <tpgalchenko@gmail.com>
Suggested-by: NTaras Galchenko <tpgalchenko@gmail.com>
Tested-by: NTaras Galchenko <tpgalchenko@gmail.com>
Reviewed-by: NUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: NThierry Reding <thierry.reding@gmail.com>
Signed-off-by: NSasha Levin <sashal@kernel.org>
Signed-off-by: NChen Jun <chenjun102@huawei.com>
Acked-by: NXie XiuQi <xiexiuqi@huawei.com>
上级 e81602b9
......@@ -294,12 +294,8 @@ static int sun4i_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
ctrl |= BIT_CH(PWM_CLK_GATING, pwm->hwpwm);
if (state->enabled) {
if (state->enabled)
ctrl |= BIT_CH(PWM_EN, pwm->hwpwm);
} else {
ctrl &= ~BIT_CH(PWM_EN, pwm->hwpwm);
ctrl &= ~BIT_CH(PWM_CLK_GATING, pwm->hwpwm);
}
sun4i_pwm_writel(sun4i_pwm, ctrl, PWM_CTRL_REG);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册