kernel_optimize_test/drivers/clk
Stefan Agner 5e33ebff7e clk: imx7d: do not set parent of ethernet time/ref clocks
All device trees currently in mainline specify the time clock parent
using the assigned-clocks/assigned-clock-parents method, there is no
need to statically assign the parent in the core clock driver.
Also all current boards provide an Ethernet reference clock for the
PHY externally, hence configuring the internal PHY reference clock.

Furthermore, and the actual driver of this patch, specify ethernet
related parents at that early point in boot leads to a warning:
bad: scheduling from the idle thread!

The reason for the warning is that setting the parent enables the ENET
PLL since we are using CLK_OPS_PARENT_ENABLE. Enabling the ENET PLL can
cause clk_pllv3_wait_lock to sleep. See also:
commit fc8726a2c0 ("clk: core: support clocks which requires parents
enable (part 2)").

Note that setting the ENET AXI root clock parent also requires ENET
PLL to be enabled. However, U-Boot typically leaves the ENET PLL on,
hence when the framework sets the parent of the first clock, it does
not need to wait for the PLL to come up. But because there is currently
no user of that clock, the PLL gets disabled after setting the parent.
Therefore, subsequent reparenting calls of any clock which somehow rely
on the ENET PLL, need to reenable the ENET PLL which leads to a sleep.
Removing those subsequent reparenting calls works around this issue.

Also remove comments. The code is really verbose enough.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Tested-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Michael Turquette <mturquette@baylibre.com>
Link: lkml.kernel.org/r/20160703174813.13970-1-stefan@agner.ch
2016-07-12 15:31:14 -07:00
..
at91 clk: at91: make of_sama5d2_clk_generated_setup() static 2016-06-20 17:44:33 -07:00
axis clk: add artpec-6 clock controller 2016-04-15 16:02:16 -07:00
axs10x clk/axs10x: Add I2S PLL clock driver 2016-05-06 10:35:04 -07:00
bcm clk: bcm: iproc: Migrate to clk_hw based registration and OF APIs 2016-06-30 12:26:45 -07:00
berlin ARM: SoC driver updates for v4.4 2015-11-10 15:00:03 -08:00
h8300 clk: h8300: Properly cast to __iomem pointer 2016-02-26 16:01:32 -08:00
hisilicon clk: hi6220: Change syspll and media_syspll clk to 1.19GHz 2016-07-06 15:20:31 -07:00
imx clk: imx7d: do not set parent of ethernet time/ref clocks 2016-07-12 15:31:14 -07:00
ingenic clk: ingenic: Allow divider value to be divided 2016-05-12 14:48:25 -07:00
keystone clk: keystone: fix a trivial typo 2015-10-19 15:29:09 -07:00
mediatek clk: mediatek: remove hdmitx_dig_cts from TOP clocks 2016-05-06 17:47:42 +02:00
meson Merge branch 'clk-s905' into clk-next 2016-07-07 20:06:30 -07:00
microchip clk: microchip: Remove CLK_IS_ROOT 2016-06-01 14:52:54 -07:00
mmp clk: mmp: Remove CLK_IS_ROOT 2016-04-15 16:50:01 -07:00
mvebu clk: mvebu: new driver for Armada CP110 system controller 2016-05-06 15:27:02 -07:00
mxs clk: mxs: Remove CLK_IS_ROOT 2016-03-02 17:44:59 -08:00
nxp clk: lpc32xx: allow peripheral clock selection in device tree 2016-07-06 17:51:14 -07:00
pistachio clk: pistachio: correct critical clock list 2015-08-26 11:34:43 -07:00
pxa The clk changes for this release cycle are mostly dominated by 2016-03-23 06:06:45 -07:00
qcom clk: qcom: add EBI2 clocks to the MSM8660 GCC 2016-07-01 18:12:45 -07:00
renesas clk: renesas: r8a7795: Add THS/TSC clock 2016-06-21 09:21:06 +02:00
rockchip Placeholder for the rk3399 watchdog pclk, some newly exported 2016-07-01 17:30:42 -07:00
samsung clk: samsung: exynos5433: Add CLK_IGNORE_UNUSED flag to PCIE device 2016-06-10 12:15:30 +02:00
sirf clk: sirf: Remove CLK_IS_ROOT 2016-04-15 16:50:04 -07:00
socfpga clk: socfpga: allow for multiple parents on Arria10 periph clocks 2016-02-22 14:17:37 -08:00
spear clk: spear: Remove CLK_IS_ROOT 2016-03-02 17:46:55 -08:00
st clk: st: clkgen-pll: Detect critical clocks 2016-06-30 12:17:11 -07:00
sunxi clk: sunxi: make clk-* explicitly non-modular 2016-07-06 15:20:34 -07:00
sunxi-ng clk: sunxi-ng: h3: Fix Kconfig symbol typo 2016-07-11 14:35:16 -07:00
tegra clk: tegra: Initialize UTMI PLL when enabling PLLU 2016-06-30 17:43:17 +02:00
ti It's the usual big pile of driver updates and additions, but we 2016-05-20 20:18:12 -07:00
ux500 clk: ux500: Remove CLK_IS_ROOT 2016-03-02 17:48:03 -08:00
versatile clk: versatile: Remove CLK_IS_ROOT 2016-03-15 15:19:21 -07:00
x86 clk: x86: Remove clkdev.h and clk.h includes 2016-03-03 11:27:26 -08:00
zte clk: zte: Remove CLK_IS_ROOT 2016-04-15 16:50:07 -07:00
zynq clk: zynq: Remove CLK_IS_ROOT 2016-03-02 17:48:26 -08:00
clk-asm9260.c
clk-axi-clkgen.c clk: axi-clkgen: Remove sometimes impossible check 2016-01-29 17:11:02 -08:00
clk-axm5516.c
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-clps711x.c clk: clps711x: Remove CLK_IS_ROOT 2016-04-15 16:50:09 -07:00
clk-composite.c Merge branch 'clk-hw-register' (early part) into clk-next 2016-04-21 14:47:18 -07:00
clk-conf.c clk: clk-conf: Fix error message when clock isn't found 2016-07-08 11:27:58 -07:00
clk-cs2000-cp.c clk: add CS2000 Fractional-N driver 2015-11-30 16:33:38 -08:00
clk-devres.c
clk-divider.c clk: divider: Add hw based registration APIs 2016-04-19 16:55:01 -07:00
clk-efm32gg.c clk: efm32gg: Remove CLK_IS_ROOT 2016-03-02 17:48:47 -08:00
clk-fixed-factor.c clk: fixed-factor: Allow for a few clocks to change the parent rate 2016-07-01 17:16:59 -07:00
clk-fixed-rate.c clk: fixed-rate: add clk_hw_unregister_fixed_rate() 2016-06-30 13:07:10 -07:00
clk-fractional-divider.c clk: fractional-divider: Add hw based registration APIs 2016-04-19 16:56:28 -07:00
clk-gate.c clk: gate: Add hw based registration APIs 2016-04-19 16:55:01 -07:00
clk-gpio.c clk: gpio: Add hw based registration APIs 2016-04-19 16:56:28 -07:00
clk-highbank.c clk: highbank: Migrate to clk_hw based registration and OF APIs 2016-06-30 12:25:28 -07:00
clk-ls1x.c clk: ls1x: Remove CLK_IS_ROOT 2016-04-15 16:50:10 -07:00
clk-max77686.c clk: max77{686,802}: Remove CLK_IS_ROOT 2016-03-15 15:19:49 -07:00
clk-max77802.c clk: max77{686,802}: Remove CLK_IS_ROOT 2016-03-15 15:19:49 -07:00
clk-max-gen.c
clk-max-gen.h
clk-mb86s7x.c clk: mb86s7x: Remove CLK_IS_ROOT 2016-03-03 11:27:48 -08:00
clk-moxart.c
clk-multiplier.c clk: multiplier: Prevent the multiplier from under / over flowing 2016-06-20 13:00:00 -07:00
clk-mux.c clk: mux: Add hw based registration APIs 2016-04-19 16:55:01 -07:00
clk-nomadik.c clk: nomadik: Migrate to clk_hw based OF and registration APIs 2016-06-30 12:25:53 -07:00
clk-nspire.c clk: nspire: Remove CLK_IS_ROOT 2016-04-15 16:50:12 -07:00
clk-oxnas.c clk: oxnas: make it explicitly non-modular 2016-07-06 15:20:33 -07:00
clk-palmas.c clk: palmas: Remove CLK_IS_ROOT 2016-04-15 16:50:14 -07:00
clk-pwm.c clk: pwm: Use pwm_get_args() where appropriate 2016-05-17 14:45:00 +02:00
clk-qoriq.c clk: qoriq: add __init attribute 2016-04-19 18:56:15 -07:00
clk-rk808.c clk: rk808: Remove CLK_IS_ROOT 2016-04-15 16:50:18 -07:00
clk-s2mps11.c clk: s2mps11: Migrate to clk_hw based OF and registration APIs 2016-06-30 12:29:14 -07:00
clk-scpi.c clk: scpi: Remove CLK_IS_ROOT 2016-03-02 17:50:58 -08:00
clk-si514.c clk: si5{14,351,70}: Remove CLK_IS_ROOT 2016-03-02 17:51:13 -08:00
clk-si570.c clk: si5{14,351,70}: Remove CLK_IS_ROOT 2016-03-02 17:51:13 -08:00
clk-si5351.c clk: si5{14,351,70}: Remove CLK_IS_ROOT 2016-03-02 17:51:13 -08:00
clk-si5351.h
clk-stm32f4.c clk: stm32f4: fix error handling 2016-07-06 17:55:31 -07:00
clk-tango4.c clk: tango4: improve clkgen driver 2016-04-15 17:16:06 -07:00
clk-twl6040.c clk: twl6040: Remove CLK_IS_ROOT 2016-04-15 16:50:21 -07:00
clk-u300.c clk: u300: Migrate to clk_hw based registration APIs 2016-06-30 12:26:18 -07:00
clk-vt8500.c clk: vt8500: rework wm8650_find_pll_bits() 2016-06-20 17:47:53 -07:00
clk-wm831x.c clk: wm831x: Remove CLK_IS_ROOT 2016-04-15 16:50:23 -07:00
clk-xgene.c clk: xgene: Remove CLK_IS_ROOT 2016-04-15 16:50:27 -07:00
clk.c clk: core: support clocks which requires parents enable (part 2) 2016-07-01 17:42:56 -07:00
clk.h
clkdev.c clkdev: Add clk_hw based registration APIs 2016-04-19 16:54:26 -07:00
Kconfig Merge branch 'clk-sunxi-ng' into clk-next 2016-07-08 18:08:56 -07:00
Makefile Merge branch 'clk-sunxi-ng' into clk-next 2016-07-08 18:08:56 -07:00