• Heiko Stuebner's avatar
    clk: rockchip: only enter pll slow-mode directly before reboots on rk3288 · dfff24bd
    Heiko Stuebner authored
    As commit 1d33929e ("clk: rockchip: switch PLLs to slow mode before
    reboot for rk3288") states, switching the PLLs to slow-mode is only
    necessary when rebooting using the soft-reset done through the CRU.
    
    The dwc2 controllers used create really big number of interrupts in
    special constellations involving usb-hubs and their number is so high,
    it can even overwhelm the interrupt handler if the cpu-speed os to low.
    
    Right now the PLLs are put into slow-mode in a shutdown syscore_ops
    callback which means it happens on all reboots (not only the soft-reset
    ones) and even on poweroff actions.
    
    This can result in the system not powering off and getting stuck instead,
    so we should move the slow-mode change nearer to the actual reboot action.
    
    For this we introduce the possiblity to also set a callback that gets
    called from the restart-handler directly prior to restarting the system
    and move the shutdown-callback to this new option.
    
    With this the slow-mode switch is done only on the necessary reboots
    and also has a smaller possibility of causing artifacts.
    
    Fixes: 1d33929e ("clk: rockchip: switch PLLs to slow mode before reboot for rk3288")
    Signed-off-by: default avatarHeiko Stuebner <heiko.stuebner@collabora.com>
    Reviewed-by: default avatarDouglas Anderson <dianders@chromium.org>
    dfff24bd
clk-rk3368.c 39.5 KB