mirror of https://gitee.com/openkylin/linux.git
clk: tegra: Don't reset PLL-CX if it is already enabled
Commit8dce89a1c2
("clk: tegra: Don't warn for PLL defaults unnecessarily") changed the tegra210_pllcx_set_defaults() function causing the PLL to always be reset regardless of whether it is in-use. This function was changed so that resetting of the PLL will only be skipped if the PLL is enabled AND 'pllcx->params->defaults_set' is not true. However, the 'pllcx->params->defaults_set' is always true and hence, the PLL is now always reset. This causes the boot to fail on the Tegra210 Smaug where the PLL is already enabled and in-use. Fix this by only resetting the PLL if not in-use and only printing the warning that the defaults are not set after we have checked the default settings. Fixes:8dce89a1c2
("clk: tegra: Don't warn for PLL defaults unnecessarily") Signed-off-by: Jon Hunter <jonathanh@nvidia.com> Acked-By: Peter De Schrijver <pdeschrijver@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
88da44c5ed
commit
1116d5a7af
|
@ -555,12 +555,12 @@ static void tegra210_pllcx_set_defaults(const char *name,
|
|||
{
|
||||
pllcx->params->defaults_set = true;
|
||||
|
||||
if (readl_relaxed(clk_base + pllcx->params->base_reg) &
|
||||
PLL_ENABLE && !pllcx->params->defaults_set) {
|
||||
if (readl_relaxed(clk_base + pllcx->params->base_reg) & PLL_ENABLE) {
|
||||
/* PLL is ON: only check if defaults already set */
|
||||
pllcx_check_defaults(pllcx->params);
|
||||
pr_warn("%s already enabled. Postponing set full defaults\n",
|
||||
name);
|
||||
if (!pllcx->params->defaults_set)
|
||||
pr_warn("%s already enabled. Postponing set full defaults\n",
|
||||
name);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue