mirror of https://gitee.com/openkylin/linux.git
clk: tegra: Always program PLL_E when enabled
Commitbff1cef5f2
("clk: tegra: Don't enable already enabled PLLs") added checks to avoid enabling PLLs that have already been enabled by the bootloader. However, the PLL_E configuration inherited from the bootloader isn't necessarily the one that is needed for the kernel. This can cause SATA to fail like this: [ 5.310270] phy phy-sata.6: phy poweron failed --> -110 [ 5.315604] tegra-ahci 70027000.sata: failed to power on AHCI controller: -110 [ 5.323022] tegra-ahci: probe of 70027000.sata failed with error -110 Fix this by always programming the PLL_E. This ensures that any mis- configuration by the bootloader will be overwritten by the kernel. Fixes:bff1cef5f2
("clk: tegra: Don't enable already enabled PLLs") Reported-by: LABBE Corentin <clabbe@baylibre.com> Tested-by: Corentin Labbe <clabbe@baylibre.com> Reviewed-by: Dmitry Osipenko <digetx@gmail.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
6402e780e9
commit
5105660ee8
|
@ -1611,9 +1611,6 @@ static int clk_plle_tegra114_enable(struct clk_hw *hw)
|
||||||
unsigned long flags = 0;
|
unsigned long flags = 0;
|
||||||
unsigned long input_rate;
|
unsigned long input_rate;
|
||||||
|
|
||||||
if (clk_pll_is_enabled(hw))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
input_rate = clk_hw_get_rate(clk_hw_get_parent(hw));
|
input_rate = clk_hw_get_rate(clk_hw_get_parent(hw));
|
||||||
|
|
||||||
if (_get_table_rate(hw, &sel, pll->params->fixed_rate, input_rate))
|
if (_get_table_rate(hw, &sel, pll->params->fixed_rate, input_rate))
|
||||||
|
|
Loading…
Reference in New Issue