• Stephen Warren's avatar
    ARM: tegra: cpu-tegra: explicitly manage re-parenting · ce32ddaa
    Stephen Warren authored
    When changing a PLL's rate, it must have no active children. The CPU
    clock cannot be stopped, and CPU clock's divider is not used. The old
    clock driver used to handle this by internally reparenting the CPU clock
    onto a different PLL when changing the CPU clock rate. However, the new
    common-clock based clock driver does not do this, and probably cannot do
    this due to the locking issues it would cause.
    
    To solve this, have the Tegra cpufreq driver explicitly perform the
    reparenting operations itself. This is probably reasonable anyway,
    since such reparenting is somewhat a matter of policy (e.g. which
    alternate clock source to use, whether to leave the CPU clock a child
    of the alternate clock source if it's running at the desired rate),
    and hence is something more appropriate for the cpufreq driver than
    the core clock driver anyway.
    
    Cc: Prashant Gaikwad <pgaikwad@nvidia.com>
    Cc: Peter De Schrijver <pdeschrijver@nvidia.com>
    Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
    ce32ddaa
cpu-tegra.c 6.6 KB