On Fri, Oct 28, 2022 at 01:33:56PM +0100, Jon Hunter wrote: > When dynamically scaling the PWM clock, the function > dev_pm_opp_set_rate() may set the PWM clock to a rate that is lower than > what is required. The clock rate requested when calling > dev_pm_opp_set_rate() is the minimum clock rate that is needed to drive > the PWM to achieve the required period. Hence, if the actual clock > rate is less than the requested clock rate, then the required period > cannot be achieved and configuring the PWM fails. Fix this by > calling clk_round_rate() to check if the clock rate that will be provided > is sufficient and if not, double the required clock rate to ensure the > required period can be attained. > > Fixes: 8c193f4714df ("pwm: tegra: Optimize period calculation") > Signed-off-by: Jon Hunter <jonathanh@xxxxxxxxxx> > --- > Changes since V1: > - Multiplied the required_clk_rate by 2 instead of adding 1 to the > PWM_DUTY_WIDTH and recalculating the rate. Overall rate should be > similar. > - Updated comment based upon Uwe's feedback. > > drivers/pwm/pwm-tegra.c | 11 +++++++++++ > 1 file changed, 11 insertions(+) Applied, thanks. Thierry
Attachment:
signature.asc
Description: PGP signature