• Jon Hunter's avatar
    clk: tegra: Fix warning caused by pll_u failing to lock · 0649c323
    Jon Hunter authored
    If the pll_u is not configured by the bootloader, then on kernel boot the
    following warning is seen:
    
     clk_pll_wait_for_lock: Timed out waiting for pll pll_u_vco lock
     tegra_init_from_table: Failed to enable pll_u_out1
     ------------[ cut here ]------------
     WARNING: at drivers/clk/tegra/clk.c:269
     Modules linked in:
    
     CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.4.0-rc4-next-20151214+ #1
     Hardware name: NVIDIA Tegra210 P2371 reference board (E.1) (DT)
     task: ffffffc0bc0a0000 ti: ffffffc0bc0a8000 task.ti: ffffffc0bc0a8000
     PC is at tegra_init_from_table+0x140/0x164
     LR is at tegra_init_from_table+0x140/0x164
     pc : [<ffffffc0008fee78>] lr : [<ffffffc0008fee78>] pstate: 80000045
     sp : ffffffc0bc0abd50
     x29: ffffffc0bc0abd50 x28: ffffffc00090b8a8
     x27: ffffffc000a06000 x26: ffffffc0bc019780
     x25: ffffffc00086a708 x24: ffffffc00086a790
     x23: ffffffc0006d7188 x22: ffffffc0bc010000
     x21: 000000000000016e x20: ffffffc0bc00d100
     x19: ffffffc000944178 x18: 0000000000000007
     x17: 000000000000000e x16: 0000000000000001
     x15: 0000000000000007 x14: 000000000000000e
     x13: 0000000000000013 x12: 000000000000001a
     x11: 000000000000004d x10: 0000000000000750
     x9 : ffffffc0bc0a8000 x8 : ffffffc0bc0a07b0
     x7 : 0000000000000001 x6 : 0000000002d5f0f8
     x5 : 0000000000000000 x4 : 0000000000000000
     x3 : 0000000000000002 x2 : ffffffc000996724
     x1 : 0000000000000000 x0 : 0000000000000032
    
     ---[ end trace cbd20ae519e92ced ]---
     Call trace:
     [<ffffffc0008fee78>] tegra_init_from_table+0x140/0x164
     [<ffffffc000900ac8>] tegra210_clock_apply_init_table+0x20/0x28
     [<ffffffc0008fec40>] tegra_clocks_apply_init_table+0x18/0x24
     [<ffffffc00008291c>] do_one_initcall+0x90/0x194
     [<ffffffc0008cfab0>] kernel_init_freeable+0x148/0x1e8
     [<ffffffc000636bb0>] kernel_init+0x10/0xdc
     [<ffffffc000085cd0>] ret_from_fork+0x10/0x40
     clk_pll_wait_for_lock: Timed out waiting for pll pll_u_vco lock
     tegra_init_from_table: Failed to enable pll_u_out2
     ------------[ cut here ]------------
    
    pll_u can be either controlled by software or hardware and this is
    selected via the OVERRIDE bit in the pll_u base register. In the function
    tegra210_pll_init(), the OVERRIDE bit for pll_u is cleared, which selects
    hardware control of the pll. However, at the same time the pll_u clocks
    are populated in the init_table for tegra210 and so software will try to
    configure the pll_u if it is not already configured and hence, the above
    warning is seen when the pll fails to lock. Remove the pll_u clocks from
    the init_table so that software does not try to configure this pll on
    boot.
    Signed-off-by: default avatarJon Hunter <jonathanh@nvidia.com>
    Acked-by: default avatarRhyland Klein <rklein@nvidia.com>
    Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
    0649c323
clk-tegra210.c 94 KB