linux/drivers/clk
Heiko Stuebner dfff24bde7 clk: rockchip: only enter pll slow-mode directly before reboots on rk3288
As commit 1d33929e2a ("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: 1d33929e2a ("clk: rockchip: switch PLLs to slow mode before reboot for rk3288")
Signed-off-by: Heiko Stuebner <heiko.stuebner@collabora.com>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
2015-12-21 02:01:19 +01:00
..
at91 clk: at91: add generated clock driver 2015-10-01 12:48:11 -07:00
bcm Merge branch 'clk-iproc' into clk-next 2015-10-21 17:28:19 -07:00
berlin ARM: SoC driver updates for v4.4 2015-11-10 15:00:03 -08:00
h8300 h8300: unaligned divcr register support. 2015-11-08 22:44:37 +09:00
hisilicon clk: Remove unneeded semicolons 2015-09-17 11:15:14 -07:00
imx clk: imx31: add missing of_node_put 2015-10-21 16:16:34 -07:00
ingenic clk: ingenic: Include clk.h 2015-07-20 11:11:36 -07:00
keystone clk: keystone: fix a trivial typo 2015-10-19 15:29:09 -07:00
mediatek clk: mediatek: Add USB clock support in MT8173 APMIXEDSYS 2015-10-01 12:06:00 +08:00
meson clk: meson8b: Properly include clk.h 2015-07-20 10:53:10 -07:00
mmp clk: mmp: Convert to clk_hw based provider APIs 2015-08-24 16:48:49 -07:00
mvebu clk: mvebu: Use of_clk_get_parent_name() 2015-10-16 16:35:43 -07:00
mxs clk:mxs: Fix bug on frequency divider 2015-10-01 15:24:34 -07:00
nxp clk: lpc18xx-cgu: fix potential system hang when disabling unused clocks 2015-10-26 12:36:58 -07:00
pistachio clk: pistachio: correct critical clock list 2015-08-26 11:34:43 -07:00
pxa The clk framework changes for 4.3 are mostly updates to existing drivers 2015-08-31 17:26:48 -07:00
qcom clk: qcom: msm8960: Fix dsi1/2 halt bits 2015-10-27 13:10:13 -07:00
rockchip clk: rockchip: only enter pll slow-mode directly before reboots on rk3288 2015-12-21 02:01:19 +01:00
samsung ARM: DT updates for v4.4 2015-11-10 15:06:26 -08:00
shmobile ARM: SoC platform updates for v4.4 2015-11-10 14:56:23 -08:00
sirf clk: atlas7: fix noc/socket disconnect/reconnect for unit clks 2015-09-29 08:27:14 -07:00
socfpga clk: socfpga: Add a second parent option for the dbg_base_clk 2015-08-24 16:49:03 -07:00
spear The clk framework changes for 4.3 are mostly updates to existing drivers 2015-08-31 17:26:48 -07:00
st drivers: clk: st: Correct the pll-type for A9 for stih418 2015-10-08 23:52:59 -07:00
sunxi ARM: SoC platform updates for v4.4 2015-11-10 14:56:23 -08:00
tegra clk: tegra: Changes for v4.4-rc1 2015-10-20 08:49:11 -07:00
ti clk: ti: dflt: fix enable_reg validity check 2015-10-02 09:24:28 +03:00
ux500 clk/ARM: move Ux500 PRCC bases to the device tree 2015-08-24 16:49:14 -07:00
versatile clk: versatile-icst: fix memory leak 2015-10-23 13:34:53 -07:00
x86
zte clk: zx: Constify parent names in clock init data 2015-07-28 11:59:39 -07:00
zynq ARM: SoC platform updates for v4.3 2015-09-01 12:18:40 -07:00
clk-asm9260.c clk: asm9260: Fix of_io_request_and_map error check 2015-05-13 12:32:52 -07:00
clk-axi-clkgen.c clk: axi-clkgen: Remove clk.h include 2015-07-20 10:52:50 -07:00
clk-axm5516.c clk: axm55xx: Use %zu in pr_info for size_t 2015-05-13 12:32:53 -07:00
clk-cdce706.c clk: Convert __clk_get_flags() to clk_hw_get_flags() 2015-08-24 16:48:44 -07:00
clk-cdce925.c clk: cdce925: Include clk.h 2015-07-20 11:11:32 -07:00
clk-clps711x.c clk: clps711x: Remove clk.h include 2015-07-20 10:52:53 -07:00
clk-composite.c clk: Convert basic types to clk_hw based provider APIs 2015-08-24 16:48:48 -07:00
clk-conf.c clk: clk-conf: Fix typo in comment 2015-05-21 11:55:05 -07:00
clk-devres.c
clk-divider.c clk: divider: handle integer overflow when dividing large clock rates 2015-09-16 15:22:33 -07:00
clk-efm32gg.c clk: efm32gg: Remove clk.h include 2015-07-20 10:52:54 -07:00
clk-fixed-factor.c clk: Convert basic types to clk_hw based provider APIs 2015-08-24 16:48:48 -07:00
clk-fixed-rate.c clk: basic-types: Remove useless allocation failure printks 2015-05-14 16:51:50 -07:00
clk-fractional-divider.c clk: fractional-divider: switch to rational best approximation 2015-10-02 11:29:48 -07:00
clk-gate.c clk: basic-type: Silence warnings about lock imbalances 2015-07-28 11:59:28 -07:00
clk-gpio.c clk: gpio: Mark parent_names array const 2015-07-28 11:59:24 -07:00
clk-highbank.c clk: highbank: Include clk.h 2015-07-20 11:11:22 -07:00
clk-ls1x.c clk: ls1x: Fix duplicate const for parent names 2015-05-05 22:50:50 -07:00
clk-max77686.c drivers/clk: include <module.h> for clk-max77xxx modular code 2015-06-16 14:12:25 -04:00
clk-max77802.c clk: max77802: Update MODULE_AUTHOR() email address 2015-10-14 11:31:55 -07:00
clk-max-gen.c clk: max-gen: Silence sparse warnings 2015-05-14 17:11:18 -07:00
clk-max-gen.h
clk-mb86s7x.c clk: Add clock driver for mb86s7x 2015-04-10 13:51:55 -07:00
clk-moxart.c clk: moxart: Include clk.h 2015-07-20 11:11:33 -07:00
clk-multiplier.c clk: Remove clk_{register,unregister}_multiplier() 2015-10-23 13:34:46 -07:00
clk-mux.c clk: Replace __clk_get_num_parents with clk_hw_get_num_parents() 2015-08-24 16:48:43 -07:00
clk-nomadik.c clk: nomadik: Remove clk.h and clkdev.h includes 2015-07-20 10:52:57 -07:00
clk-nspire.c
clk-palmas.c clk: palmas: Remove clkdev.h includes 2015-07-20 10:52:58 -07:00
clk-pwm.c clk: Add PWM clock driver 2015-04-10 14:44:43 -07:00
clk-qoriq.c clk: qoriq: Add ls1043a support. 2015-10-27 00:21:38 -05:00
clk-rk808.c clk: rk808: Remove clk.h include 2015-07-20 10:53:00 -07:00
clk-s2mps11.c clk: s2mps11: Use kcalloc instead of kzalloc for array allocation 2015-07-28 11:59:32 -07:00
clk-scpi.c clk: scpi: add support for cpufreq virtual device 2015-09-28 11:53:37 +01:00
clk-si514.c Add driver for the si514 clock generator chip 2015-10-08 23:52:55 -07:00
clk-si570.c clk: si570: Include clk.h 2015-07-20 11:11:35 -07:00
clk-si5351.c clk: si5351: add missing of_node_put 2015-10-21 16:16:33 -07:00
clk-si5351.h
clk-stm32f4.c clk: stm32f4: Convert to clk_hw based provider APIs 2015-08-24 16:48:51 -07:00
clk-twl6040.c Merge branch 'cleanup-clk-h-includes' into clk-next 2015-07-28 11:59:09 -07:00
clk-u300.c clk: u300: Remove clk.h include 2015-07-20 10:53:04 -07:00
clk-vt8500.c
clk-wm831x.c clk: wm831x: Remove clk.h include 2015-07-20 10:53:05 -07:00
clk-xgene.c clk: xgene: Remove unused setup.h include 2015-10-16 12:06:58 -07:00
clk.c clk: Add clk_hw_is_enabled() for use by clk providers 2015-10-26 12:36:55 -07:00
clk.h clk: Replace of_clk_get_by_clkspec() with of_clk_get_from_provider() 2015-03-12 12:20:34 -07:00
clkdev.c clkdev: fix clk_add_alias() with a NULL alias device name 2015-10-20 17:24:08 +01:00
Kconfig ARM: SoC driver updates for v4.4 2015-11-10 15:00:03 -08:00
Makefile ARM: SoC driver updates for v4.4 2015-11-10 15:00:03 -08:00