• Jon Hunter's avatar
    pwm: tegra: Ensure the clock rate is not less than needed · 5eccd0d9
    Jon Hunter authored
    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: 8c193f47 ("pwm: tegra: Optimize period calculation")
    Signed-off-by: default avatarJon Hunter <jonathanh@nvidia.com>
    Acked-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: default avatarThierry Reding <thierry.reding@gmail.com>
    5eccd0d9
pwm-tegra.c 11.1 KB