clk: tegra: Fix pllx dyn step calculation
The logic for calculating the input rate used when figuring out the proper dynamic steps for pllx was incorrect. It is supposed to be calculated using parent_rate / m but it was just using the parent rate directly, therefore using the wrong step values. Signed-off-by: Rhyland Klein <rklein@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
Родитель
3eb61566a6
Коммит
3dad5c5fa1
|
@ -780,13 +780,13 @@ static void pllx_get_dyn_steps(struct clk_hw *hw, u32 *step_a, u32 *step_b)
|
|||
{
|
||||
unsigned long input_rate;
|
||||
|
||||
if (!IS_ERR_OR_NULL(hw->clk)) {
|
||||
input_rate = clk_hw_get_rate(clk_hw_get_parent(hw));
|
||||
/* cf rate */
|
||||
input_rate /= tegra_pll_get_fixed_mdiv(hw, input_rate);
|
||||
} else {
|
||||
if (!IS_ERR_OR_NULL(hw->clk))
|
||||
input_rate = clk_hw_get_rate(clk_hw_get_parent(hw));
|
||||
else
|
||||
input_rate = 38400000;
|
||||
}
|
||||
|
||||
input_rate /= tegra_pll_get_fixed_mdiv(hw, input_rate);
|
||||
|
||||
switch (input_rate) {
|
||||
case 12000000:
|
||||
|
|
Загрузка…
Ссылка в новой задаче