linux_dsm_epyc7002/drivers/clk
Boris Brezillon 0817b62cc0 clk: change clk_ops' ->determine_rate() prototype
Clock rates are stored in an unsigned long field, but ->determine_rate()
(which returns a rounded rate from a requested one) returns a long
value (errors are reported using negative error codes), which can lead
to long overflow if the clock rate exceed 2Ghz.

Change ->determine_rate() prototype to return 0 or an error code, and pass
a pointer to a clk_rate_request structure containing the expected target
rate and the rate constraints imposed by clk users.

The clk_rate_request structure might be extended in the future to contain
other kind of constraints like the rounding policy, the maximum clock
inaccuracy or other things that are not yet supported by the CCF
(power consumption constraints ?).

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
CC: Jonathan Corbet <corbet@lwn.net>
CC: Tony Lindgren <tony@atomide.com>
CC: Ralf Baechle <ralf@linux-mips.org>
CC: "Emilio López" <emilio@elopez.com.ar>
CC: Maxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: Tero Kristo <t-kristo@ti.com>
CC: Peter De Schrijver <pdeschrijver@nvidia.com>
CC: Prashant Gaikwad <pgaikwad@nvidia.com>
CC: Stephen Warren <swarren@wwwdotorg.org>
CC: Thierry Reding <thierry.reding@gmail.com>
CC: Alexandre Courbot <gnurou@gmail.com>
CC: linux-doc@vger.kernel.org
CC: linux-kernel@vger.kernel.org
CC: linux-arm-kernel@lists.infradead.org
CC: linux-omap@vger.kernel.org
CC: linux-mips@linux-mips.org
CC: linux-tegra@vger.kernel.org
[sboyd@codeaurora.org: Fix parent dereference problem in
__clk_determine_rate()]
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Tested-by: Romain Perier <romain.perier@gmail.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
[sboyd@codeaurora.org: Folded in fix from Heiko for fixed-rate
clocks without parents or a rate determining op]
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
2015-07-27 18:12:01 -07:00
..
at91 clk: change clk_ops' ->determine_rate() prototype 2015-07-27 18:12:01 -07:00
bcm clk: change clk_ops' ->determine_rate() prototype 2015-07-27 18:12:01 -07:00
berlin The changes to the common clock framework for 4.2 are dominated by new 2015-07-01 19:22:00 -07:00
h8300 clk: h8300: fix error handling in h8s2678_pll_clk_setup() 2015-06-23 13:35:58 +09:00
hisilicon clk: change clk_ops' ->determine_rate() prototype 2015-07-27 18:12:01 -07:00
imx ARM: SoC: platform support for v4.2 2015-06-26 11:34:35 -07:00
ingenic clk: ingenic: add JZ4780 CGU support 2015-06-21 21:53:20 +02:00
keystone clk: keystone: add support for post divider register for main pll 2015-06-18 15:36:33 -07:00
mediatek clk: mediatek: Fix apmixedsys clock registration 2015-06-04 14:07:07 -07:00
meson clk: meson: add some error handling in meson_clk_register_cpu() 2015-06-12 14:30:19 -07:00
mmp clk: change clk_ops' ->determine_rate() prototype 2015-07-27 18:12:01 -07:00
mvebu clk: mvebu: flag the crypto clk as CLK_IGNORE_UNUSED 2015-06-18 13:51:45 -07:00
mxs clk: make several parent names const 2015-06-04 14:27:06 -07:00
nxp clk: add lpc18xx ccu clk driver 2015-06-18 15:44:48 -07:00
pistachio clk: pistachio: Add sanity checks on PLL configuration 2015-06-04 12:43:39 -07:00
pxa The changes to the common clock framework for 4.2 are dominated by new 2015-07-01 19:22:00 -07:00
qcom clk: change clk_ops' ->determine_rate() prototype 2015-07-27 18:12:01 -07:00
rockchip clk: make several parent names const 2015-06-04 14:27:06 -07:00
samsung Merge branch 'clk-exynos-cpu-clk' into clk-next 2015-06-20 13:26:40 -07:00
shmobile clk: emev2: Silence sparse warnings 2015-05-14 17:11:23 -07:00
sirf clk: sirf: add CSR atlas7 clk and reset support 2015-05-20 15:43:28 -07:00
socfpga clk: socfpga: remove a stray tab 2015-06-09 18:14:27 -07:00
spear Merge branch 'clk-fixes' into clk-next 2014-07-13 07:56:45 -07:00
st clk: st: Use of_clk_get_parent_count() instead of open coding 2015-06-04 13:51:34 -07:00
sunxi clk: change clk_ops' ->determine_rate() prototype 2015-07-27 18:12:01 -07:00
tegra clk: change clk_ops' ->determine_rate() prototype 2015-07-27 18:12:01 -07:00
ti The changes to the common clock framework for 4.2 are dominated by new 2015-07-01 19:22:00 -07:00
ux500 clk: ux500: ape[ate|trace]clk are scaleable 2015-05-07 11:32:39 -07:00
versatile clk: versatile: Silence sparse warnings 2015-05-14 17:11:27 -07:00
x86 clk: x86: drop owner assignment from platform_drivers 2014-10-20 16:20:23 +02:00
zte clk: zx: add clock support to zx296702 2015-06-11 16:18:08 -07:00
zynq clk: make several parent names const 2015-06-04 14:27:06 -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: Remove .owner field for driver 2014-09-25 17:43:31 -07:00
clk-axm5516.c clk: axm55xx: Use %zu in pr_info for size_t 2015-05-13 12:32:53 -07:00
clk-bcm2835.c ARM: bcm2835: remove custom .init_time hook 2013-09-29 21:09:24 +02:00
clk-cdce706.c clk: cdce706: Add missing of_clk_del_provider call in cdce706_remove 2015-05-21 11:53:23 -07:00
clk-cdce925.c clk: cdce925: Fix printk size_t warning 2015-06-10 14:16:36 -07:00
clk-clps711x.c clk: Add CLPS711X clk driver 2014-07-28 23:30:46 -07:00
clk-composite.c clk: change clk_ops' ->determine_rate() prototype 2015-07-27 18:12:01 -07:00
clk-conf.c clk: clk-conf: Fix typo in comment 2015-05-21 11:55:05 -07:00
clk-devres.c ARM: 7537/1: clk: Fix release in devm_clk_put() 2012-09-19 21:51:27 +01:00
clk-divider.c clk: basic-types: Remove useless allocation failure printks 2015-05-14 16:51:50 -07:00
clk-efm32gg.c clk/efm32gg: fix dt init prototype 2014-09-09 13:52:18 -07:00
clk-fixed-factor.c clk: fixed: Add comment to clk_fixed_set_rate 2015-06-10 14:19:43 -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: basic-types: Remove useless allocation failure printks 2015-05-14 16:51:50 -07:00
clk-gate.c clk: basic-types: Remove useless allocation failure printks 2015-05-14 16:51:50 -07:00
clk-gpio-gate.c clk: gpio-gate: Don't export __init functions 2015-05-14 17:11:16 -07:00
clk-highbank.c ARM: highbank: remove custom .init_time hook 2013-09-29 21:09:29 +02: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 drivers/clk: include <module.h> for clk-max77xxx modular code 2015-06-16 14:12:25 -04:00
clk-max-gen.c clk: max-gen: Silence sparse warnings 2015-05-14 17:11:18 -07:00
clk-max-gen.h clk: Add generic driver for Maxim PMIC clocks 2014-09-09 13:55:44 -07:00
clk-mb86s7x.c clk: Add clock driver for mb86s7x 2015-04-10 13:51:55 -07:00
clk-moxart.c clk: moxart: Silence sparse warnings 2015-05-14 17:11:31 -07:00
clk-mux.c clk: make strings in parent name arrays const 2015-05-05 22:50:03 -07:00
clk-nomadik.c drivers/clk: don't use module_init in clk-nomadik.c which is non-modular 2015-06-16 14:12:31 -04:00
clk-nspire.c clk: Add TI-Nspire clock drivers 2013-05-31 12:07:45 -07:00
clk-palmas.c clk: constify of_device_id array 2015-04-01 10:59:27 -07:00
clk-pwm.c clk: Add PWM clock driver 2015-04-10 14:44:43 -07:00
clk-qoriq.c clk: qoriq: Add support for the platform PLL 2015-02-18 09:56:43 -08:00
clk-rk808.c clk: RK808: add clkout driver for RK808 2014-10-14 02:18:18 +02:00
clk-s2mps11.c clk: s2mps11: use clkdev_create() 2015-05-06 11:58:59 +01:00
clk-si570.c clk: si570: Constify struct regmap_config 2015-03-27 00:22:49 -07:00
clk-si5351.c clk: si5351: fix .recalc_rate for multisynth 6-7 2015-05-13 11:52:06 -07:00
clk-si5351.h clk: si5351: remove variant from platform_data 2014-01-27 11:20:22 -08:00
clk-stm32f4.c clk: stm32: Add clock driver for STM32F4[23]xxx devices 2015-06-22 16:17:01 -07:00
clk-twl6040.c clk: Remove .owner field for driver 2014-09-25 17:43:31 -07:00
clk-u300.c clk: u300: Silence sparse warnings 2015-05-14 17:11:31 -07:00
clk-vt8500.c clk: vt8500: Staticize vtwm_pll_ops 2013-12-19 17:47:32 -08:00
clk-wm831x.c clk: Remove .owner field for driver 2014-09-25 17:43:31 -07:00
clk-xgene.c clk: xgene: Silence sparse warnings 2015-05-14 17:11:30 -07:00
clk.c clk: change clk_ops' ->determine_rate() prototype 2015-07-27 18:12:01 -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: add clkdev_create() helper 2015-05-06 11:58:57 +01:00
Kconfig clk: tegra: Changes for v4.2-rc1 2015-06-20 13:29:48 -07:00
Makefile The changes to the common clock framework for 4.2 are dominated by new 2015-07-01 19:22:00 -07:00