alistair23-linux/drivers/clk
Masahiro Yamada 176d11690b clk: move core->parents allocation to clk_register()
Currently, __clk_core_init() allows failure of the kcalloc() for the
core->parents.  So, clk_fetch_parent_index() and __clk_init_parent()
also try to allocate core->parents in case it has not been allocated
yet.  Scattering memory allocation here and there makes things
complicated.

Like other clk_core members, allocate core->parents in clk_register()
and let it fail in case of memory shortage.  If we cannot allocate
such a small piece of memory, the system is already insane.  There is
no point to postpone the memory allocation.

Also, allocate core->parents regardless of core->num_parents.  We want
it even if core->num_parents == 1 because clk_fetch_parent_index()
might be called against the clk_core with a single parent.

If core->num_parents == 0, core->parents is set to ZERO_SIZE_PTR. It
is harmless because no access happens to core->parents in such a case.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Reviewed-by: Vladimir Zapolskiy <vz@mleia.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
2016-02-01 17:01:46 -08:00
..
at91 clk: at91: Revert "keep slow clk enabled to prevent system hang" 2015-11-20 10:53:12 -08:00
bcm clk: iproc: Remove __init from header 2016-01-29 16:31:40 -08: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: move the common clock's to_clk_*(_hw) macros to clk-provider.h 2016-01-29 12:59:50 -08: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: Fix memory leak on clock init fail 2016-01-29 13:02:51 -08:00
meson clk: meson8b: Properly include clk.h 2015-07-20 10:53:10 -07:00
mmp clk: mmp: stop using platform headers 2015-12-01 21:44:22 +01:00
mvebu clk: move the common clock's to_clk_*(_hw) macros to clk-provider.h 2016-01-29 12:59:50 -08:00
mxs clk: move the common clock's to_clk_*(_hw) macros to clk-provider.h 2016-01-29 12:59:50 -08:00
nxp clk: move the common clock's to_clk_*(_hw) macros to clk-provider.h 2016-01-29 12:59:50 -08:00
pistachio clk: pistachio: correct critical clock list 2015-08-26 11:34:43 -07:00
pxa ARM: pxa: make more mach/*.h files local 2015-12-01 21:52:50 +01:00
qcom clk:gcc-msm8916: add missing mss_q6_bimc_axi clock 2016-01-29 16:35:22 -08:00
rockchip Merge branch 'clk-fixes' into clk-next 2016-01-29 17:26:31 -08:00
samsung clk: Move vendor's Kconfig into CCF menu section 2016-01-29 16:30:06 -08:00
shmobile Merge branch 'clk-renesas' into clk-next 2015-12-31 15:17:39 -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 clk: st: avoid uninitialized variable use 2016-01-29 17:20:08 -08:00
sunxi Allwinner clocks changes for 4.5 2015-12-23 23:23:18 -08:00
tegra asm-generic changes for 4.5 2016-01-20 17:30:20 -08:00
ti clk: move the common clock's to_clk_*(_hw) macros to clk-provider.h 2016-01-29 12:59:50 -08:00
ux500 clk/ARM: move Ux500 PRCC bases to the device tree 2015-08-24 16:49:14 -07:00
versatile ARM: SoC multiplatform code changes for v4.5 2016-01-20 18:03:56 -08:00
x86 clk: x86: drop owner assignment from platform_drivers 2014-10-20 16:20:23 +02:00
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 sometimes impossible check 2016-01-29 17:11:02 -08: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: move the common clock's to_clk_*(_hw) macros to clk-provider.h 2016-01-29 12:59:50 -08:00
clk-conf.c clk: clk-conf: Fix typo in comment 2015-05-21 11:55:05 -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: optimize the divider walk in clk_divider_bestdiv() 2016-01-29 16:45:32 -08:00
clk-efm32gg.c clk: efm32gg: Remove clk.h include 2015-07-20 10:52:54 -07:00
clk-fixed-factor.c clk: add clk_unregister_fixed_factor() 2016-01-29 16:35:49 -08:00
clk-fixed-rate.c clk: add clk_unregister_fixed_rate() 2016-01-29 16:37:24 -08:00
clk-fractional-divider.c clk: move the common clock's to_clk_*(_hw) macros to clk-provider.h 2016-01-29 12:59:50 -08:00
clk-gate.c clk: move the common clock's to_clk_*(_hw) macros to clk-provider.h 2016-01-29 12:59:50 -08:00
clk-gpio.c clk: move the common clock's to_clk_*(_hw) macros to clk-provider.h 2016-01-29 12:59:50 -08: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-max-gen.c clk: max-gen: Silence sparse warnings 2015-05-14 17:11:18 -07:00
clk-max-gen.h
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-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: move the common clock's to_clk_*(_hw) macros to clk-provider.h 2016-01-29 12:59:50 -08:00
clk-mux.c clk: move the common clock's to_clk_*(_hw) macros to clk-provider.h 2016-01-29 12:59:50 -08: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: fix a possible NULL dereference 2016-01-29 16:57:09 -08:00
clk-pwm.c clk: Add PWM clock driver 2015-04-10 14:44:43 -07:00
clk-qoriq.c clk: qoriq: fix memory leak 2015-11-30 13:00:54 -08:00
clk-rk808.c clk: rk808: Remove clk.h include 2015-07-20 10:53:00 -07:00
clk-s2mps11.c clk: s2mps11: remove redundant code 2016-01-29 12:47:22 -08:00
clk-scpi.c clk: scpi: Fix checking return value of platform_device_register_simple() 2016-01-29 12:07:59 -08: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 PLL soft reset 2015-11-20 10:40:37 -08: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-tango4.c clk: tango4: clkgen driver for Tango4 platforms 2015-11-16 11:07:06 -08: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: vt8500: fix sign of possible PLL values 2016-01-29 16:43:58 -08:00
clk-wm831x.c clk: wm831x: Remove clk.h include 2015-07-20 10:53:05 -07:00
clk-xgene.c clk: xgene: Remove return from void function 2016-01-29 12:57:54 -08:00
clk.c clk: move core->parents allocation to clk_register() 2016-02-01 17:01:46 -08: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 clk: Move vendor's Kconfig into CCF menu section 2016-01-29 16:30:06 -08:00
Makefile clk: tango4: rename ARCH_TANGOX to ARCH_TANGO 2016-01-29 12:08:02 -08:00