* [PATCH 00/26] ARM: provide common arch init for DT clocks
@ 2013-09-18 17:53 Sebastian Hesselbarth
2013-09-18 17:53 ` [PATCH 09/26] ARM: call of_clk_init from default time_init handler Sebastian Hesselbarth
` (2 more replies)
0 siblings, 3 replies; 14+ messages in thread
From: Sebastian Hesselbarth @ 2013-09-18 17:53 UTC (permalink / raw)
To: Sebastian Hesselbarth
Cc: Olof Johansson, Arnd Bergmann, Russell King, STEricsson,
linux-tegra, linux-rpi-kernel, linux-samsung-soc, kernel,
linux-arm-kernel, linux-kernel
This is a patch set based on an RFC [1][2] sent earlier to provide a common
arch/arm init for DT clock providers. Currently, the call to of_clk_init(NULL)
to initialize DT clock providers is spread among several mach-dirs. Since most
machs require DT clocks initialized before timers, no initcall can be used.
By adding of_clk_init(NULL) to arch/arm time_init(), we can remove all
mach-specific .init_time hooks that basically called of_clk_init and
clocksource_of_init.
In contrast to the RFC version, of_clk_init(NULL) is now only called if no
custom .init_time callback is set. This allows some machs to still call clock
init themselves, as not all can be converted now. Therefore, this patch sets
drops conversion of mach-mvebu and mach-zynq. New machs that were introduced
with v3.12-rc1 are also converted, except mach-u300 that requires clocks
before irqs.
The patch set is based on v3.12-rc1 and further depends on a topic branch
created by Stephen Warren for mach-tegra [3]. It is now split into preparation
and removal patches to not break bisectability. I added all Acked-by/Tested-by's
where applicable or dropped them, if the patch was separated into two.
It has been compile tested for all machs involved with the following defconfigs
(multi_v7, bcm2835, dove, exynos, kirkwood, mxs, nhk8815) and nspire selected
on multi_v4_v5.
Patches 1-8 comprise preparation patches that convert machs nomadik, prima2,
socfpga, sunxi, tegra, and vt8500 to usual .init_time callbacks calling only
of_clk_init and clocksource_of_init.
Patch 9 then introduces of_clk_init(NULL) to the arch-wide default .init_time
callback.
Patches 10-26 finally remove custom .init_time callbacks from the machs involved.
The patches have been pushed to a topic branch based on v3.12-rc1 with tegra's
tegra-for-3.13-deps-for-arm-init-time-cleanup branch merged in to
https://github.com/shesselba/linux-dove.git clk-of-init-v1_for-3.13
[1] http://www.spinics.net/lists/arm-kernel/msg268260.html
[2] http://www.spinics.net/lists/arm-kernel/msg270173.html
[3] http://www.spinics.net/lists/arm-kernel/msg273957.html
git://git.kernel.org/pub/scm/linux/kernel/git/swarren/linux-tegra.git tegra-for-3.13-deps-for-arm-init-time-cleanup
Sebastian Hesselbarth (26):
ARM: nomadik: move mtu setup to clocksource init
clk: nomadik: move src init out of nomadik_clk_init
clk: nomadik: declare OF clock provider
clk: prima2: declare OF clock provider
ARM: socfgpa: prepare for arch-wide .init_time callback
clk: sunxi: declare OF clock provider
clk: vt8500: parse pmc_base from clock driver
ARM: vt8500: prepare for arch-wide .init_time callback
ARM: call of_clk_init from default time_init handler
ARM: bcm2835: remove custom .init_time hook
ARM: dove: remove custom .init_time hook
ARM: exynos: remove custom .init_time hook
ARM: highbank: remove custom .init_time hook
ARM: imx: remove custom .init_time hook
ARM: kirkwood: remove custom .init_time hook
ARM: mxs: remove custom .init_time hook
ARM: nomadik: remove custom .init_time hook
ARM: nspire: remove custom .init_time hook
ARM: prima2: remove custom .init_time hook
ARM: rockchip: remove custom .init_time hook
ARM: socfpga: remove custom .init_time hook
ARM: sti: remove custom .init_time hook
ARM: sunxi: remove custom .init_time hook
ARM: tegra: remove custom .init_time hook
ARM: vexpress: remove custom .init_time hook
ARM: vt8500: remove custom .init_time hook
arch/arm/kernel/time.c | 27 ++---
arch/arm/mach-bcm2835/bcm2835.c | 2 -
arch/arm/mach-dove/board-dt.c | 11 --
arch/arm/mach-exynos/common.c | 8 --
arch/arm/mach-exynos/common.h | 1 -
arch/arm/mach-exynos/mach-exynos4-dt.c | 2 -
arch/arm/mach-exynos/mach-exynos5-dt.c | 2 -
arch/arm/mach-highbank/highbank.c | 23 ++---
arch/arm/mach-imx/clk-imx51-imx53.c | 29 ++----
arch/arm/mach-imx/common.h | 4 -
arch/arm/mach-imx/imx51-dt.c | 6 --
arch/arm/mach-imx/mach-imx53.c | 6 --
arch/arm/mach-imx/mach-imx6q.c | 14 +--
arch/arm/mach-imx/mach-imx6sl.c | 7 --
arch/arm/mach-imx/mach-vf610.c | 9 --
arch/arm/mach-kirkwood/board-dt.c | 8 --
arch/arm/mach-mxs/mach-mxs.c | 13 ---
arch/arm/mach-nomadik/cpu-8815.c | 36 -------
arch/arm/mach-nspire/nspire.c | 9 --
arch/arm/mach-prima2/common.c | 11 --
arch/arm/mach-prima2/common.h | 1 -
arch/arm/mach-rockchip/rockchip.c | 9 --
arch/arm/mach-socfpga/socfpga.c | 2 -
arch/arm/mach-sti/board-dt.c | 10 +-
arch/arm/mach-sunxi/sunxi.c | 10 --
arch/arm/mach-tegra/tegra.c | 9 --
arch/arm/mach-vexpress/v2m.c | 14 +--
arch/arm/mach-vt8500/common.h | 24 -----
arch/arm/mach-vt8500/vt8500.c | 6 --
drivers/clk/clk-bcm2835.c | 8 --
drivers/clk/clk-highbank.c | 10 +-
drivers/clk/clk-nomadik.c | 161 ++++++++++++++---------------
drivers/clk/clk-prima2.c | 29 ++----
drivers/clk/clk-vt8500.c | 31 ++++--
drivers/clk/mxs/clk-imx23.c | 15 +--
drivers/clk/mxs/clk-imx28.c | 16 +--
drivers/clk/sunxi/clk-sunxi.c | 11 +-
drivers/clocksource/nomadik-mtu.c | 11 ++
include/linux/clk/mxs.h | 2 -
include/linux/clk/sunxi.h | 22 ----
include/linux/platform_data/clk-nomadik.h | 2 -
41 files changed, 182 insertions(+), 449 deletions(-)
delete mode 100644 arch/arm/mach-vt8500/common.h
delete mode 100644 include/linux/clk/sunxi.h
delete mode 100644 include/linux/platform_data/clk-nomadik.h
---
Cc: Olof Johansson <olof@lixom.net>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: STEricsson <STEricsson_nomadik_linux@list.st.com>
Cc: linux-tegra@vger.kernel.org
Cc: linux-rpi-kernel@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: kernel@stlinux.com
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
--
1.7.10.4
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 09/26] ARM: call of_clk_init from default time_init handler
2013-09-18 17:53 [PATCH 00/26] ARM: provide common arch init for DT clocks Sebastian Hesselbarth
@ 2013-09-18 17:53 ` Sebastian Hesselbarth
[not found] ` <1379526839-14798-10-git-send-email-sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
[not found] ` <1379526839-14798-1-git-send-email-sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-09-20 19:16 ` Matt Porter
2 siblings, 1 reply; 14+ messages in thread
From: Sebastian Hesselbarth @ 2013-09-18 17:53 UTC (permalink / raw)
To: Sebastian Hesselbarth
Cc: linux-samsung-soc, linux-tegra, kernel, Arnd Bergmann,
linux-kernel, STEricsson, linux-rpi-kernel, Olof Johansson,
Russell King, linux-arm-kernel
Most DT ARM machs require common clock providers initialized before timers.
Currently, arch/arm machs use .init_time to call of_clk_init right before
clocksource_of_init. This prevents to remove that callback and use the default
one instead.
This patch adds a call to of_clk_init() to the default .init_time callback
to allow to remove custom callbacks where applicable. While at it, also
reorder includes alphabetically.
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
---
Changelog:
RFCv2->v1:
- only call of_clk_init(NULL) when no custom .init_time is set
(Suggested by Soeren Brinkmann)
RFCv1->RFCv2:
- reorder includes alphabetically
Cc: Olof Johansson <olof@lixom.net>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: STEricsson <STEricsson_nomadik_linux@list.st.com>
Cc: linux-tegra@vger.kernel.org
Cc: linux-rpi-kernel@lists.infradead.org
Cc: linux-samsung-soc@vger.kernel.org
Cc: kernel@stlinux.com
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
---
arch/arm/kernel/time.c | 27 +++++++++++++++------------
1 file changed, 15 insertions(+), 12 deletions(-)
diff --git a/arch/arm/kernel/time.c b/arch/arm/kernel/time.c
index 98aee32..bc0468b 100644
--- a/arch/arm/kernel/time.c
+++ b/arch/arm/kernel/time.c
@@ -11,25 +11,26 @@
* This file contains the ARM-specific time handling details:
* reading the RTC at bootup, etc...
*/
+#include <linux/clk-provider.h>
+#include <linux/clocksource.h>
+#include <linux/errno.h>
#include <linux/export.h>
-#include <linux/kernel.h>
-#include <linux/interrupt.h>
-#include <linux/time.h>
#include <linux/init.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/kernel.h>
+#include <linux/profile.h>
#include <linux/sched.h>
+#include <linux/sched_clock.h>
#include <linux/smp.h>
+#include <linux/time.h>
#include <linux/timex.h>
-#include <linux/errno.h>
-#include <linux/profile.h>
#include <linux/timer.h>
-#include <linux/clocksource.h>
-#include <linux/irq.h>
-#include <linux/sched_clock.h>
-#include <asm/thread_info.h>
-#include <asm/stacktrace.h>
#include <asm/mach/arch.h>
#include <asm/mach/time.h>
+#include <asm/stacktrace.h>
+#include <asm/thread_info.h>
#if defined(CONFIG_RTC_DRV_CMOS) || defined(CONFIG_RTC_DRV_CMOS_MODULE) || \
defined(CONFIG_NVRAM) || defined(CONFIG_NVRAM_MODULE)
@@ -116,8 +117,10 @@ int __init register_persistent_clock(clock_access_fn read_boot,
void __init time_init(void)
{
- if (machine_desc->init_time)
+ if (machine_desc->init_time) {
machine_desc->init_time();
- else
+ } else {
+ of_clk_init(NULL);
clocksource_of_init();
+ }
}
--
1.7.10.4
^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 24/26] ARM: tegra: remove custom .init_time hook
[not found] ` <1379526839-14798-1-git-send-email-sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2013-09-18 17:53 ` Sebastian Hesselbarth
[not found] ` <1379526839-14798-25-git-send-email-sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-09-18 19:47 ` [PATCH 00/26] ARM: provide common arch init for DT clocks Jason Cooper
1 sibling, 1 reply; 14+ messages in thread
From: Sebastian Hesselbarth @ 2013-09-18 17:53 UTC (permalink / raw)
To: Sebastian Hesselbarth
Cc: Olof Johansson, Arnd Bergmann, Russell King, Stephen Warren,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-tegra-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA
With arch/arm calling of_clk_init(NULL) from time_init(), we can now
remove custom .init_time hooks.
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
---
Cc: Olof Johansson <olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org>
Cc: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
Cc: Russell King <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>
Cc: Stephen Warren <swarren-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Cc: linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
---
arch/arm/mach-tegra/tegra.c | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/arch/arm/mach-tegra/tegra.c b/arch/arm/mach-tegra/tegra.c
index 4da271d..2e21928 100644
--- a/arch/arm/mach-tegra/tegra.c
+++ b/arch/arm/mach-tegra/tegra.c
@@ -16,7 +16,6 @@
*
*/
-#include <linux/clocksource.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/platform_device.h>
@@ -33,7 +32,6 @@
#include <linux/slab.h>
#include <linux/sys_soc.h>
#include <linux/usb/tegra_usb_phy.h>
-#include <linux/clk-provider.h>
#include <linux/clk/tegra.h>
#include <asm/mach-types.h>
@@ -84,12 +82,6 @@ out:
of_platform_populate(NULL, of_default_bus_match_table, NULL, parent);
}
-static void __init tegra_dt_init_time(void)
-{
- of_clk_init(NULL);
- clocksource_of_init();
-}
-
static void __init paz00_init(void)
{
if (IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC))
@@ -129,7 +121,6 @@ DT_MACHINE_START(TEGRA_DT, "NVIDIA Tegra SoC (Flattened Device Tree)")
.smp = smp_ops(tegra_smp_ops),
.init_early = tegra_init_early,
.init_irq = tegra_dt_init_irq,
- .init_time = tegra_dt_init_time,
.init_machine = tegra_dt_init,
.init_late = tegra_dt_init_late,
.restart = tegra_assert_system_reset,
--
1.7.10.4
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 24/26] ARM: tegra: remove custom .init_time hook
[not found] ` <1379526839-14798-25-git-send-email-sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2013-09-18 19:38 ` Stephen Warren
0 siblings, 0 replies; 14+ messages in thread
From: Stephen Warren @ 2013-09-18 19:38 UTC (permalink / raw)
To: Sebastian Hesselbarth
Cc: Olof Johansson, Arnd Bergmann, Russell King,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-tegra-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA
On 09/18/2013 11:53 AM, Sebastian Hesselbarth wrote:
> With arch/arm calling of_clk_init(NULL) from time_init(), we can now
> remove custom .init_time hooks.
Acked-by: Stephen Warren <swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 00/26] ARM: provide common arch init for DT clocks
[not found] ` <1379526839-14798-1-git-send-email-sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-09-18 17:53 ` [PATCH 24/26] ARM: tegra: remove custom .init_time hook Sebastian Hesselbarth
@ 2013-09-18 19:47 ` Jason Cooper
[not found] ` <20130918194711.GR19937-u4khhh1J0LxI1Ri9qeTfzeTW4wlIGRCZ@public.gmane.org>
1 sibling, 1 reply; 14+ messages in thread
From: Jason Cooper @ 2013-09-18 19:47 UTC (permalink / raw)
To: Sebastian Hesselbarth
Cc: linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA,
linux-tegra-u79uwXL29TY76Z2rM5mHXA, kernel-F5mvAk5X5gdBDgjK7y7TUQ,
Arnd Bergmann, linux-kernel-u79uwXL29TY76Z2rM5mHXA, STEricsson,
linux-rpi-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Olof Johansson,
Russell King, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
Sebastian,
On Wed, Sep 18, 2013 at 07:53:33PM +0200, Sebastian Hesselbarth wrote:
...
> Sebastian Hesselbarth (26):
> ARM: nomadik: move mtu setup to clocksource init
> clk: nomadik: move src init out of nomadik_clk_init
> clk: nomadik: declare OF clock provider
> clk: prima2: declare OF clock provider
> ARM: socfgpa: prepare for arch-wide .init_time callback
> clk: sunxi: declare OF clock provider
> clk: vt8500: parse pmc_base from clock driver
> ARM: vt8500: prepare for arch-wide .init_time callback
> ARM: call of_clk_init from default time_init handler
> ARM: bcm2835: remove custom .init_time hook
> ARM: dove: remove custom .init_time hook
> ARM: exynos: remove custom .init_time hook
> ARM: highbank: remove custom .init_time hook
> ARM: imx: remove custom .init_time hook
> ARM: kirkwood: remove custom .init_time hook
> ARM: mxs: remove custom .init_time hook
> ARM: nomadik: remove custom .init_time hook
> ARM: nspire: remove custom .init_time hook
> ARM: prima2: remove custom .init_time hook
> ARM: rockchip: remove custom .init_time hook
> ARM: socfpga: remove custom .init_time hook
> ARM: sti: remove custom .init_time hook
> ARM: sunxi: remove custom .init_time hook
> ARM: tegra: remove custom .init_time hook
> ARM: vexpress: remove custom .init_time hook
> ARM: vt8500: remove custom .init_time hook
>
> arch/arm/kernel/time.c | 27 ++---
> arch/arm/mach-bcm2835/bcm2835.c | 2 -
> arch/arm/mach-dove/board-dt.c | 11 --
> arch/arm/mach-exynos/common.c | 8 --
> arch/arm/mach-exynos/common.h | 1 -
> arch/arm/mach-exynos/mach-exynos4-dt.c | 2 -
> arch/arm/mach-exynos/mach-exynos5-dt.c | 2 -
> arch/arm/mach-highbank/highbank.c | 23 ++---
> arch/arm/mach-imx/clk-imx51-imx53.c | 29 ++----
> arch/arm/mach-imx/common.h | 4 -
> arch/arm/mach-imx/imx51-dt.c | 6 --
> arch/arm/mach-imx/mach-imx53.c | 6 --
> arch/arm/mach-imx/mach-imx6q.c | 14 +--
> arch/arm/mach-imx/mach-imx6sl.c | 7 --
> arch/arm/mach-imx/mach-vf610.c | 9 --
> arch/arm/mach-kirkwood/board-dt.c | 8 --
> arch/arm/mach-mxs/mach-mxs.c | 13 ---
> arch/arm/mach-nomadik/cpu-8815.c | 36 -------
> arch/arm/mach-nspire/nspire.c | 9 --
> arch/arm/mach-prima2/common.c | 11 --
> arch/arm/mach-prima2/common.h | 1 -
> arch/arm/mach-rockchip/rockchip.c | 9 --
> arch/arm/mach-socfpga/socfpga.c | 2 -
> arch/arm/mach-sti/board-dt.c | 10 +-
> arch/arm/mach-sunxi/sunxi.c | 10 --
> arch/arm/mach-tegra/tegra.c | 9 --
> arch/arm/mach-vexpress/v2m.c | 14 +--
> arch/arm/mach-vt8500/common.h | 24 -----
> arch/arm/mach-vt8500/vt8500.c | 6 --
> drivers/clk/clk-bcm2835.c | 8 --
> drivers/clk/clk-highbank.c | 10 +-
> drivers/clk/clk-nomadik.c | 161 ++++++++++++++---------------
> drivers/clk/clk-prima2.c | 29 ++----
> drivers/clk/clk-vt8500.c | 31 ++++--
> drivers/clk/mxs/clk-imx23.c | 15 +--
> drivers/clk/mxs/clk-imx28.c | 16 +--
> drivers/clk/sunxi/clk-sunxi.c | 11 +-
> drivers/clocksource/nomadik-mtu.c | 11 ++
> include/linux/clk/mxs.h | 2 -
> include/linux/clk/sunxi.h | 22 ----
> include/linux/platform_data/clk-nomadik.h | 2 -
> 41 files changed, 182 insertions(+), 449 deletions(-)
> delete mode 100644 arch/arm/mach-vt8500/common.h
> delete mode 100644 include/linux/clk/sunxi.h
> delete mode 100644 include/linux/platform_data/clk-nomadik.h
How would you like to handle this series?
thx,
Jason.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 00/26] ARM: provide common arch init for DT clocks
[not found] ` <20130918194711.GR19937-u4khhh1J0LxI1Ri9qeTfzeTW4wlIGRCZ@public.gmane.org>
@ 2013-09-18 19:52 ` Sebastian Hesselbarth
2013-09-18 20:45 ` Stephen Warren
2013-09-18 20:48 ` Olof Johansson
0 siblings, 2 replies; 14+ messages in thread
From: Sebastian Hesselbarth @ 2013-09-18 19:52 UTC (permalink / raw)
To: Jason Cooper
Cc: linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA,
linux-tegra-u79uwXL29TY76Z2rM5mHXA, kernel-F5mvAk5X5gdBDgjK7y7TUQ,
Arnd Bergmann, linux-kernel-u79uwXL29TY76Z2rM5mHXA, STEricsson,
linux-rpi-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Olof Johansson,
Russell King, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
On 09/18/2013 09:47 PM, Jason Cooper wrote:
> On Wed, Sep 18, 2013 at 07:53:33PM +0200, Sebastian Hesselbarth wrote:
> ...
>> Sebastian Hesselbarth (26):
>> ARM: nomadik: move mtu setup to clocksource init
>> clk: nomadik: move src init out of nomadik_clk_init
>> clk: nomadik: declare OF clock provider
>> clk: prima2: declare OF clock provider
>> ARM: socfgpa: prepare for arch-wide .init_time callback
>> clk: sunxi: declare OF clock provider
>> clk: vt8500: parse pmc_base from clock driver
>> ARM: vt8500: prepare for arch-wide .init_time callback
>> ARM: call of_clk_init from default time_init handler
>> ARM: bcm2835: remove custom .init_time hook
>> ARM: dove: remove custom .init_time hook
>> ARM: exynos: remove custom .init_time hook
>> ARM: highbank: remove custom .init_time hook
>> ARM: imx: remove custom .init_time hook
>> ARM: kirkwood: remove custom .init_time hook
>> ARM: mxs: remove custom .init_time hook
>> ARM: nomadik: remove custom .init_time hook
>> ARM: nspire: remove custom .init_time hook
>> ARM: prima2: remove custom .init_time hook
>> ARM: rockchip: remove custom .init_time hook
>> ARM: socfpga: remove custom .init_time hook
>> ARM: sti: remove custom .init_time hook
>> ARM: sunxi: remove custom .init_time hook
>> ARM: tegra: remove custom .init_time hook
>> ARM: vexpress: remove custom .init_time hook
>> ARM: vt8500: remove custom .init_time hook
>>
>> arch/arm/kernel/time.c | 27 ++---
>> arch/arm/mach-bcm2835/bcm2835.c | 2 -
>> arch/arm/mach-dove/board-dt.c | 11 --
>> arch/arm/mach-exynos/common.c | 8 --
>> arch/arm/mach-exynos/common.h | 1 -
>> arch/arm/mach-exynos/mach-exynos4-dt.c | 2 -
>> arch/arm/mach-exynos/mach-exynos5-dt.c | 2 -
>> arch/arm/mach-highbank/highbank.c | 23 ++---
>> arch/arm/mach-imx/clk-imx51-imx53.c | 29 ++----
>> arch/arm/mach-imx/common.h | 4 -
>> arch/arm/mach-imx/imx51-dt.c | 6 --
>> arch/arm/mach-imx/mach-imx53.c | 6 --
>> arch/arm/mach-imx/mach-imx6q.c | 14 +--
>> arch/arm/mach-imx/mach-imx6sl.c | 7 --
>> arch/arm/mach-imx/mach-vf610.c | 9 --
>> arch/arm/mach-kirkwood/board-dt.c | 8 --
>> arch/arm/mach-mxs/mach-mxs.c | 13 ---
>> arch/arm/mach-nomadik/cpu-8815.c | 36 -------
>> arch/arm/mach-nspire/nspire.c | 9 --
>> arch/arm/mach-prima2/common.c | 11 --
>> arch/arm/mach-prima2/common.h | 1 -
>> arch/arm/mach-rockchip/rockchip.c | 9 --
>> arch/arm/mach-socfpga/socfpga.c | 2 -
>> arch/arm/mach-sti/board-dt.c | 10 +-
>> arch/arm/mach-sunxi/sunxi.c | 10 --
>> arch/arm/mach-tegra/tegra.c | 9 --
>> arch/arm/mach-vexpress/v2m.c | 14 +--
>> arch/arm/mach-vt8500/common.h | 24 -----
>> arch/arm/mach-vt8500/vt8500.c | 6 --
>> drivers/clk/clk-bcm2835.c | 8 --
>> drivers/clk/clk-highbank.c | 10 +-
>> drivers/clk/clk-nomadik.c | 161 ++++++++++++++---------------
>> drivers/clk/clk-prima2.c | 29 ++----
>> drivers/clk/clk-vt8500.c | 31 ++++--
>> drivers/clk/mxs/clk-imx23.c | 15 +--
>> drivers/clk/mxs/clk-imx28.c | 16 +--
>> drivers/clk/sunxi/clk-sunxi.c | 11 +-
>> drivers/clocksource/nomadik-mtu.c | 11 ++
>> include/linux/clk/mxs.h | 2 -
>> include/linux/clk/sunxi.h | 22 ----
>> include/linux/platform_data/clk-nomadik.h | 2 -
>> 41 files changed, 182 insertions(+), 449 deletions(-)
>> delete mode 100644 arch/arm/mach-vt8500/common.h
>> delete mode 100644 include/linux/clk/sunxi.h
>> delete mode 100644 include/linux/platform_data/clk-nomadik.h
>
> How would you like to handle this series?
Jason,
honestly I don't really know, yet. I was hoping for Arnd and Olof
decide on that. Maybe they also create a topic branch up to where
arch-wide of_clk_init is introduced. Then each removal patch can
go through the independent sub-trees. There may be more machs
introduced before, that can then also depend on the common branch.
Sebastian
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 00/26] ARM: provide common arch init for DT clocks
2013-09-18 19:52 ` Sebastian Hesselbarth
@ 2013-09-18 20:45 ` Stephen Warren
2013-09-18 20:48 ` Olof Johansson
1 sibling, 0 replies; 14+ messages in thread
From: Stephen Warren @ 2013-09-18 20:45 UTC (permalink / raw)
To: Sebastian Hesselbarth
Cc: Jason Cooper, linux-samsung-soc, linux-tegra, kernel,
Arnd Bergmann, linux-kernel, STEricsson, linux-rpi-kernel,
Olof Johansson, Russell King, linux-arm-kernel
On 09/18/2013 01:52 PM, Sebastian Hesselbarth wrote:
> On 09/18/2013 09:47 PM, Jason Cooper wrote:
>> On Wed, Sep 18, 2013 at 07:53:33PM +0200, Sebastian Hesselbarth wrote:
>> ...
>>> Sebastian Hesselbarth (26):
>>> ARM: nomadik: move mtu setup to clocksource init
...
>>
>> How would you like to handle this series?
>
> Jason,
>
> honestly I don't really know, yet. I was hoping for Arnd and Olof
> decide on that. Maybe they also create a topic branch up to where
> arch-wide of_clk_init is introduced. Then each removal patch can
> go through the independent sub-trees. There may be more machs
> introduced before, that can then also depend on the common branch.
Oh, I was assuming you'd just take the whole thing through one tree,
likely in arm-soc. That's why I created the topic branch for the Tegra
PMIC patch that's a dependency of this... However, I guess if you just
merge the core into a topic branch in arm-soc and everyone merges it
back, that's fine. I assume the Tegra topic branch I created won't be
necessary in that case.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 00/26] ARM: provide common arch init for DT clocks
2013-09-18 19:52 ` Sebastian Hesselbarth
2013-09-18 20:45 ` Stephen Warren
@ 2013-09-18 20:48 ` Olof Johansson
2013-09-18 21:04 ` Sebastian Hesselbarth
1 sibling, 1 reply; 14+ messages in thread
From: Olof Johansson @ 2013-09-18 20:48 UTC (permalink / raw)
To: Sebastian Hesselbarth
Cc: Jason Cooper, linux-samsung-soc@vger.kernel.org,
linux-tegra@vger.kernel.org, kernel, Arnd Bergmann,
linux-kernel@vger.kernel.org, STEricsson, linux-rpi-kernel,
Russell King, linux-arm-kernel@lists.infradead.org
On Wed, Sep 18, 2013 at 12:52 PM, Sebastian Hesselbarth
<sebastian.hesselbarth@gmail.com> wrote:
> On 09/18/2013 09:47 PM, Jason Cooper wrote:
>>
>> On Wed, Sep 18, 2013 at 07:53:33PM +0200, Sebastian Hesselbarth wrote:
>> ...
>>>
>>> Sebastian Hesselbarth (26):
>>> ARM: nomadik: move mtu setup to clocksource init
>>> clk: nomadik: move src init out of nomadik_clk_init
>>> clk: nomadik: declare OF clock provider
>>> clk: prima2: declare OF clock provider
>>> ARM: socfgpa: prepare for arch-wide .init_time callback
>>> clk: sunxi: declare OF clock provider
>>> clk: vt8500: parse pmc_base from clock driver
>>> ARM: vt8500: prepare for arch-wide .init_time callback
>>> ARM: call of_clk_init from default time_init handler
>>> ARM: bcm2835: remove custom .init_time hook
>>> ARM: dove: remove custom .init_time hook
>>> ARM: exynos: remove custom .init_time hook
>>> ARM: highbank: remove custom .init_time hook
>>> ARM: imx: remove custom .init_time hook
>>> ARM: kirkwood: remove custom .init_time hook
>>> ARM: mxs: remove custom .init_time hook
>>> ARM: nomadik: remove custom .init_time hook
>>> ARM: nspire: remove custom .init_time hook
>>> ARM: prima2: remove custom .init_time hook
>>> ARM: rockchip: remove custom .init_time hook
>>> ARM: socfpga: remove custom .init_time hook
>>> ARM: sti: remove custom .init_time hook
>>> ARM: sunxi: remove custom .init_time hook
>>> ARM: tegra: remove custom .init_time hook
>>> ARM: vexpress: remove custom .init_time hook
>>> ARM: vt8500: remove custom .init_time hook
>>>
>>> arch/arm/kernel/time.c | 27 ++---
>>> arch/arm/mach-bcm2835/bcm2835.c | 2 -
>>> arch/arm/mach-dove/board-dt.c | 11 --
>>> arch/arm/mach-exynos/common.c | 8 --
>>> arch/arm/mach-exynos/common.h | 1 -
>>> arch/arm/mach-exynos/mach-exynos4-dt.c | 2 -
>>> arch/arm/mach-exynos/mach-exynos5-dt.c | 2 -
>>> arch/arm/mach-highbank/highbank.c | 23 ++---
>>> arch/arm/mach-imx/clk-imx51-imx53.c | 29 ++----
>>> arch/arm/mach-imx/common.h | 4 -
>>> arch/arm/mach-imx/imx51-dt.c | 6 --
>>> arch/arm/mach-imx/mach-imx53.c | 6 --
>>> arch/arm/mach-imx/mach-imx6q.c | 14 +--
>>> arch/arm/mach-imx/mach-imx6sl.c | 7 --
>>> arch/arm/mach-imx/mach-vf610.c | 9 --
>>> arch/arm/mach-kirkwood/board-dt.c | 8 --
>>> arch/arm/mach-mxs/mach-mxs.c | 13 ---
>>> arch/arm/mach-nomadik/cpu-8815.c | 36 -------
>>> arch/arm/mach-nspire/nspire.c | 9 --
>>> arch/arm/mach-prima2/common.c | 11 --
>>> arch/arm/mach-prima2/common.h | 1 -
>>> arch/arm/mach-rockchip/rockchip.c | 9 --
>>> arch/arm/mach-socfpga/socfpga.c | 2 -
>>> arch/arm/mach-sti/board-dt.c | 10 +-
>>> arch/arm/mach-sunxi/sunxi.c | 10 --
>>> arch/arm/mach-tegra/tegra.c | 9 --
>>> arch/arm/mach-vexpress/v2m.c | 14 +--
>>> arch/arm/mach-vt8500/common.h | 24 -----
>>> arch/arm/mach-vt8500/vt8500.c | 6 --
>>> drivers/clk/clk-bcm2835.c | 8 --
>>> drivers/clk/clk-highbank.c | 10 +-
>>> drivers/clk/clk-nomadik.c | 161
>>> ++++++++++++++---------------
>>> drivers/clk/clk-prima2.c | 29 ++----
>>> drivers/clk/clk-vt8500.c | 31 ++++--
>>> drivers/clk/mxs/clk-imx23.c | 15 +--
>>> drivers/clk/mxs/clk-imx28.c | 16 +--
>>> drivers/clk/sunxi/clk-sunxi.c | 11 +-
>>> drivers/clocksource/nomadik-mtu.c | 11 ++
>>> include/linux/clk/mxs.h | 2 -
>>> include/linux/clk/sunxi.h | 22 ----
>>> include/linux/platform_data/clk-nomadik.h | 2 -
>>> 41 files changed, 182 insertions(+), 449 deletions(-)
>>> delete mode 100644 arch/arm/mach-vt8500/common.h
>>> delete mode 100644 include/linux/clk/sunxi.h
>>> delete mode 100644 include/linux/platform_data/clk-nomadik.h
>>
>>
>> How would you like to handle this series?
>
>
> Jason,
>
> honestly I don't really know, yet. I was hoping for Arnd and Olof
> decide on that. Maybe they also create a topic branch up to where
> arch-wide of_clk_init is introduced. Then each removal patch can
> go through the independent sub-trees. There may be more machs
> introduced before, that can then also depend on the common branch.
I'd like to see this merged early into arm-soc and have it as a base
branch for other platform branches if there will be much conflicts
(for trivial or small conflicts we can resolve, of course). So please
collect acks and prepare a branch for me to merge, Sebastian. Or if
it's easier I can just apply the patches directly -- just let me know.
But given the tegra dependency it's probably easier to take a branch.
The long tail might be the cases where you rewrote some of the init
code, since that'll need to be tested on those platforms. I wonder if
we can pick up most of the other pieces if that ends up taking a
while.
-Olof
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 00/26] ARM: provide common arch init for DT clocks
2013-09-18 20:48 ` Olof Johansson
@ 2013-09-18 21:04 ` Sebastian Hesselbarth
0 siblings, 0 replies; 14+ messages in thread
From: Sebastian Hesselbarth @ 2013-09-18 21:04 UTC (permalink / raw)
To: Olof Johansson
Cc: Jason Cooper, linux-samsung-soc@vger.kernel.org,
linux-tegra@vger.kernel.org, kernel, Arnd Bergmann,
linux-kernel@vger.kernel.org, STEricsson, linux-rpi-kernel,
Russell King, linux-arm-kernel@lists.infradead.org
On 09/18/2013 10:48 PM, Olof Johansson wrote:
> On Wed, Sep 18, 2013 at 12:52 PM, Sebastian Hesselbarth
> <sebastian.hesselbarth@gmail.com> wrote:
>> On 09/18/2013 09:47 PM, Jason Cooper wrote:
>>>
>>> On Wed, Sep 18, 2013 at 07:53:33PM +0200, Sebastian Hesselbarth wrote:
>>> ...
>>>>
>>>> Sebastian Hesselbarth (26):
>>>> ARM: nomadik: move mtu setup to clocksource init
>>>> clk: nomadik: move src init out of nomadik_clk_init
>>>> clk: nomadik: declare OF clock provider
>>>> clk: prima2: declare OF clock provider
>>>> ARM: socfgpa: prepare for arch-wide .init_time callback
>>>> clk: sunxi: declare OF clock provider
>>>> clk: vt8500: parse pmc_base from clock driver
>>>> ARM: vt8500: prepare for arch-wide .init_time callback
>>>> ARM: call of_clk_init from default time_init handler
>>>> ARM: bcm2835: remove custom .init_time hook
>>>> ARM: dove: remove custom .init_time hook
>>>> ARM: exynos: remove custom .init_time hook
>>>> ARM: highbank: remove custom .init_time hook
>>>> ARM: imx: remove custom .init_time hook
>>>> ARM: kirkwood: remove custom .init_time hook
>>>> ARM: mxs: remove custom .init_time hook
>>>> ARM: nomadik: remove custom .init_time hook
>>>> ARM: nspire: remove custom .init_time hook
>>>> ARM: prima2: remove custom .init_time hook
>>>> ARM: rockchip: remove custom .init_time hook
>>>> ARM: socfpga: remove custom .init_time hook
>>>> ARM: sti: remove custom .init_time hook
>>>> ARM: sunxi: remove custom .init_time hook
>>>> ARM: tegra: remove custom .init_time hook
>>>> ARM: vexpress: remove custom .init_time hook
>>>> ARM: vt8500: remove custom .init_time hook
>>>>
>>>> arch/arm/kernel/time.c | 27 ++---
>>>> arch/arm/mach-bcm2835/bcm2835.c | 2 -
>>>> arch/arm/mach-dove/board-dt.c | 11 --
>>>> arch/arm/mach-exynos/common.c | 8 --
>>>> arch/arm/mach-exynos/common.h | 1 -
>>>> arch/arm/mach-exynos/mach-exynos4-dt.c | 2 -
>>>> arch/arm/mach-exynos/mach-exynos5-dt.c | 2 -
>>>> arch/arm/mach-highbank/highbank.c | 23 ++---
>>>> arch/arm/mach-imx/clk-imx51-imx53.c | 29 ++----
>>>> arch/arm/mach-imx/common.h | 4 -
>>>> arch/arm/mach-imx/imx51-dt.c | 6 --
>>>> arch/arm/mach-imx/mach-imx53.c | 6 --
>>>> arch/arm/mach-imx/mach-imx6q.c | 14 +--
>>>> arch/arm/mach-imx/mach-imx6sl.c | 7 --
>>>> arch/arm/mach-imx/mach-vf610.c | 9 --
>>>> arch/arm/mach-kirkwood/board-dt.c | 8 --
>>>> arch/arm/mach-mxs/mach-mxs.c | 13 ---
>>>> arch/arm/mach-nomadik/cpu-8815.c | 36 -------
>>>> arch/arm/mach-nspire/nspire.c | 9 --
>>>> arch/arm/mach-prima2/common.c | 11 --
>>>> arch/arm/mach-prima2/common.h | 1 -
>>>> arch/arm/mach-rockchip/rockchip.c | 9 --
>>>> arch/arm/mach-socfpga/socfpga.c | 2 -
>>>> arch/arm/mach-sti/board-dt.c | 10 +-
>>>> arch/arm/mach-sunxi/sunxi.c | 10 --
>>>> arch/arm/mach-tegra/tegra.c | 9 --
>>>> arch/arm/mach-vexpress/v2m.c | 14 +--
>>>> arch/arm/mach-vt8500/common.h | 24 -----
>>>> arch/arm/mach-vt8500/vt8500.c | 6 --
>>>> drivers/clk/clk-bcm2835.c | 8 --
>>>> drivers/clk/clk-highbank.c | 10 +-
>>>> drivers/clk/clk-nomadik.c | 161
>>>> ++++++++++++++---------------
>>>> drivers/clk/clk-prima2.c | 29 ++----
>>>> drivers/clk/clk-vt8500.c | 31 ++++--
>>>> drivers/clk/mxs/clk-imx23.c | 15 +--
>>>> drivers/clk/mxs/clk-imx28.c | 16 +--
>>>> drivers/clk/sunxi/clk-sunxi.c | 11 +-
>>>> drivers/clocksource/nomadik-mtu.c | 11 ++
>>>> include/linux/clk/mxs.h | 2 -
>>>> include/linux/clk/sunxi.h | 22 ----
>>>> include/linux/platform_data/clk-nomadik.h | 2 -
>>>> 41 files changed, 182 insertions(+), 449 deletions(-)
>>>> delete mode 100644 arch/arm/mach-vt8500/common.h
>>>> delete mode 100644 include/linux/clk/sunxi.h
>>>> delete mode 100644 include/linux/platform_data/clk-nomadik.h
>>>
>>>
>>> How would you like to handle this series?
>>
>>
>> Jason,
>>
>> honestly I don't really know, yet. I was hoping for Arnd and Olof
>> decide on that. Maybe they also create a topic branch up to where
>> arch-wide of_clk_init is introduced. Then each removal patch can
>> go through the independent sub-trees. There may be more machs
>> introduced before, that can then also depend on the common branch.
>
> I'd like to see this merged early into arm-soc and have it as a base
> branch for other platform branches if there will be much conflicts
> (for trivial or small conflicts we can resolve, of course). So please
> collect acks and prepare a branch for me to merge, Sebastian. Or if
> it's easier I can just apply the patches directly -- just let me know.
> But given the tegra dependency it's probably easier to take a branch.
Actually, I'd be happy if you make a decision. It would be my first
pull request and maybe it should go guided by more experienced devs
from now on. Although I am willing to learn.
> The long tail might be the cases where you rewrote some of the init
> code, since that'll need to be tested on those platforms. I wonder if
> we can pick up most of the other pieces if that ends up taking a
> while.
True, for an early merge that was a bad decision. I looked again into
patches 1-8 and if there are concerns:
- nomadik can be dropped as it still has custom .init_time.
- prima2 and sunxi are quite straight forward but also have custom
.init_time that protect them from the arch-wide call.
- socfpga needs some new custom .init_time then.
- vt8500 is a little bit more changes but has .init_time call to
clocksource_of_init alone.
Sebastian
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 00/26] ARM: provide common arch init for DT clocks
2013-09-18 17:53 [PATCH 00/26] ARM: provide common arch init for DT clocks Sebastian Hesselbarth
2013-09-18 17:53 ` [PATCH 09/26] ARM: call of_clk_init from default time_init handler Sebastian Hesselbarth
[not found] ` <1379526839-14798-1-git-send-email-sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2013-09-20 19:16 ` Matt Porter
2013-09-22 12:14 ` Sebastian Hesselbarth
2 siblings, 1 reply; 14+ messages in thread
From: Matt Porter @ 2013-09-20 19:16 UTC (permalink / raw)
To: Sebastian Hesselbarth
Cc: Olof Johansson, Arnd Bergmann, Russell King, Christian Daudt,
STEricsson, linux-tegra, linux-rpi-kernel, linux-samsung-soc,
kernel, linux-arm-kernel, Linux Kernel Mailing List
On Wed, Sep 18, 2013 at 07:53:33PM +0200, Sebastian Hesselbarth wrote:
> This is a patch set based on an RFC [1][2] sent earlier to provide a common
> arch/arm init for DT clock providers. Currently, the call to of_clk_init(NULL)
> to initialize DT clock providers is spread among several mach-dirs. Since most
> machs require DT clocks initialized before timers, no initcall can be used.
>
> By adding of_clk_init(NULL) to arch/arm time_init(), we can remove all
> mach-specific .init_time hooks that basically called of_clk_init and
> clocksource_of_init.
>
> In contrast to the RFC version, of_clk_init(NULL) is now only called if no
> custom .init_time callback is set. This allows some machs to still call clock
> init themselves, as not all can be converted now. Therefore, this patch sets
> drops conversion of mach-mvebu and mach-zynq. New machs that were introduced
> with v3.12-rc1 are also converted, except mach-u300 that requires clocks
> before irqs.
>
> The patch set is based on v3.12-rc1 and further depends on a topic branch
> created by Stephen Warren for mach-tegra [3]. It is now split into preparation
> and removal patches to not break bisectability. I added all Acked-by/Tested-by's
> where applicable or dropped them, if the patch was separated into two.
> It has been compile tested for all machs involved with the following defconfigs
> (multi_v7, bcm2835, dove, exynos, kirkwood, mxs, nhk8815) and nspire selected
> on multi_v4_v5.
>
> Patches 1-8 comprise preparation patches that convert machs nomadik, prima2,
> socfpga, sunxi, tegra, and vt8500 to usual .init_time callbacks calling only
> of_clk_init and clocksource_of_init.
>
> Patch 9 then introduces of_clk_init(NULL) to the arch-wide default .init_time
> callback.
>
> Patches 10-26 finally remove custom .init_time callbacks from the machs involved.
Hi Sebastian,
Could you pick up the following patch for mach-bcm/ into this series?
Thanks,
Matt
From f65d048b3453447bb3e693cb21701c4d0c6375ed Mon Sep 17 00:00:00 2001
From: Matt Porter <matt.porter@linaro.org>
Date: Fri, 20 Sep 2013 13:41:06 -0400
Subject: [PATCH] ARM: bcm: Remove custom .time_init hook
With arch/arm calling of_clk_init(NULL) and clocksource_of_init()
this is no longer needed. The former is useful because we can make
use of dummy fixed clocks for drivers until the bcm281xx common
clock driver is ready.
Signed-off-by: Matt Porter <matt.porter@linaro.org>
Reviewed-by: Markus Mayer <markus.mayer@linaro.org>
Reviewed-by: Christian Daudt <csd@broadcom.com>
---
arch/arm/mach-bcm/board_bcm281xx.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/arch/arm/mach-bcm/board_bcm281xx.c b/arch/arm/mach-bcm/board_bcm281xx.c
index 8d9f931..26b2390 100644
--- a/arch/arm/mach-bcm/board_bcm281xx.c
+++ b/arch/arm/mach-bcm/board_bcm281xx.c
@@ -68,7 +68,6 @@ static void __init board_init(void)
static const char * const bcm11351_dt_compat[] = { "brcm,bcm11351", NULL, };
DT_MACHINE_START(BCM11351_DT, "Broadcom Application Processor")
- .init_time = clocksource_of_init,
.init_machine = board_init,
.restart = bcm_kona_restart,
.dt_compat = bcm11351_dt_compat,
--
1.8.4
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 00/26] ARM: provide common arch init for DT clocks
2013-09-20 19:16 ` Matt Porter
@ 2013-09-22 12:14 ` Sebastian Hesselbarth
[not found] ` <523EDF16.10102-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
0 siblings, 1 reply; 14+ messages in thread
From: Sebastian Hesselbarth @ 2013-09-22 12:14 UTC (permalink / raw)
To: Matt Porter
Cc: Olof Johansson, Arnd Bergmann, Russell King, Christian Daudt,
STEricsson, linux-tegra, linux-rpi-kernel, linux-samsung-soc,
kernel, linux-arm-kernel, Linux Kernel Mailing List
On 09/20/2013 09:16 PM, Matt Porter wrote:
> On Wed, Sep 18, 2013 at 07:53:33PM +0200, Sebastian Hesselbarth wrote:
>> This is a patch set based on an RFC [1][2] sent earlier to provide a common
>> arch/arm init for DT clock providers. Currently, the call to of_clk_init(NULL)
>> to initialize DT clock providers is spread among several mach-dirs. Since most
>> machs require DT clocks initialized before timers, no initcall can be used.
[...]
> Could you pick up the following patch for mach-bcm/ into this series?
>
> Thanks,
> Matt
>
> From f65d048b3453447bb3e693cb21701c4d0c6375ed Mon Sep 17 00:00:00 2001
> From: Matt Porter <matt.porter@linaro.org>
> Date: Fri, 20 Sep 2013 13:41:06 -0400
> Subject: [PATCH] ARM: bcm: Remove custom .time_init hook
>
> With arch/arm calling of_clk_init(NULL) and clocksource_of_init()
> this is no longer needed. The former is useful because we can make
> use of dummy fixed clocks for drivers until the bcm281xx common
> clock driver is ready.
>
> Signed-off-by: Matt Porter <matt.porter@linaro.org>
> Reviewed-by: Markus Mayer <markus.mayer@linaro.org>
> Reviewed-by: Christian Daudt <csd@broadcom.com>
As a v2 is required due to calling of_clk_init() breaks non-DT builds,
I will include this _if_ Christian actually gives his Acked-By.
Sebastian
> ---
> arch/arm/mach-bcm/board_bcm281xx.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/arch/arm/mach-bcm/board_bcm281xx.c b/arch/arm/mach-bcm/board_bcm281xx.c
> index 8d9f931..26b2390 100644
> --- a/arch/arm/mach-bcm/board_bcm281xx.c
> +++ b/arch/arm/mach-bcm/board_bcm281xx.c
> @@ -68,7 +68,6 @@ static void __init board_init(void)
> static const char * const bcm11351_dt_compat[] = { "brcm,bcm11351", NULL, };
>
> DT_MACHINE_START(BCM11351_DT, "Broadcom Application Processor")
> - .init_time = clocksource_of_init,
> .init_machine = board_init,
> .restart = bcm_kona_restart,
> .dt_compat = bcm11351_dt_compat,
>
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH v2 09/26] ARM: call of_clk_init from default time_init handler
[not found] ` <1379526839-14798-10-git-send-email-sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2013-09-23 7:54 ` Sebastian Hesselbarth
0 siblings, 0 replies; 14+ messages in thread
From: Sebastian Hesselbarth @ 2013-09-23 7:54 UTC (permalink / raw)
To: Sebastian Hesselbarth
Cc: Olof Johansson, Arnd Bergmann, Russell King, STEricsson,
linux-tegra-u79uwXL29TY76Z2rM5mHXA,
linux-rpi-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA,
kernel-F5mvAk5X5gdBDgjK7y7TUQ,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-kernel-u79uwXL29TY76Z2rM5mHXA
Most DT ARM machs require common clock providers initialized before timers.
Currently, arch/arm machs use .init_time to call of_clk_init right before
clocksource_of_init. This prevents to remove that callback and use the default
one instead.
This patch adds a call to of_clk_init() to the default .init_time callback
for COMMON_CLK enabled machs to allow to remove custom callbacks where applicable.
While at it, also reorder includes alphabetically.
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
---
Changelog:
v1->v2:
- protect call to of_clk_init which is only available for COMMON_CLK to
not break !COMMON_CLK machs. (Reported by Olof Johanssen)
RFCv2->v1:
- only call of_clk_init(NULL) when no custom .init_time is set
(Suggested by Soeren Brinkmann)
RFCv1->RFCv2:
- reorder includes alphabetically
Cc: Olof Johansson <olof-nZhT3qVonbNeoWH0uzbU5w@public.gmane.org>
Cc: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
Cc: Russell King <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>
Cc: STEricsson <STEricsson_nomadik_linux-nkJGhpqTU55BDgjK7y7TUQ@public.gmane.org>
Cc: linux-tegra-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: linux-rpi-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Cc: linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: kernel-F5mvAk5X5gdBDgjK7y7TUQ@public.gmane.org
Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
---
arch/arm/kernel/time.c | 29 +++++++++++++++++------------
1 file changed, 17 insertions(+), 12 deletions(-)
diff --git a/arch/arm/kernel/time.c b/arch/arm/kernel/time.c
index 98aee32..829a96d 100644
--- a/arch/arm/kernel/time.c
+++ b/arch/arm/kernel/time.c
@@ -11,25 +11,26 @@
* This file contains the ARM-specific time handling details:
* reading the RTC at bootup, etc...
*/
+#include <linux/clk-provider.h>
+#include <linux/clocksource.h>
+#include <linux/errno.h>
#include <linux/export.h>
-#include <linux/kernel.h>
-#include <linux/interrupt.h>
-#include <linux/time.h>
#include <linux/init.h>
+#include <linux/interrupt.h>
+#include <linux/irq.h>
+#include <linux/kernel.h>
+#include <linux/profile.h>
#include <linux/sched.h>
+#include <linux/sched_clock.h>
#include <linux/smp.h>
+#include <linux/time.h>
#include <linux/timex.h>
-#include <linux/errno.h>
-#include <linux/profile.h>
#include <linux/timer.h>
-#include <linux/clocksource.h>
-#include <linux/irq.h>
-#include <linux/sched_clock.h>
-#include <asm/thread_info.h>
-#include <asm/stacktrace.h>
#include <asm/mach/arch.h>
#include <asm/mach/time.h>
+#include <asm/stacktrace.h>
+#include <asm/thread_info.h>
#if defined(CONFIG_RTC_DRV_CMOS) || defined(CONFIG_RTC_DRV_CMOS_MODULE) || \
defined(CONFIG_NVRAM) || defined(CONFIG_NVRAM_MODULE)
@@ -116,8 +117,12 @@ int __init register_persistent_clock(clock_access_fn read_boot,
void __init time_init(void)
{
- if (machine_desc->init_time)
+ if (machine_desc->init_time) {
machine_desc->init_time();
- else
+ } else {
+#ifdef CONFIG_COMMON_CLK
+ of_clk_init(NULL);
+#endif
clocksource_of_init();
+ }
}
--
1.7.10.4
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 00/26] ARM: provide common arch init for DT clocks
[not found] ` <523EDF16.10102-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2013-09-23 17:45 ` Matt Porter
[not found] ` <52407E2A.7030001-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
0 siblings, 1 reply; 14+ messages in thread
From: Matt Porter @ 2013-09-23 17:45 UTC (permalink / raw)
To: Sebastian Hesselbarth
Cc: Olof Johansson, Arnd Bergmann, Russell King, Christian Daudt,
STEricsson, linux-tegra-u79uwXL29TY76Z2rM5mHXA,
linux-rpi-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA,
kernel-F5mvAk5X5gdBDgjK7y7TUQ,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
Linux Kernel Mailing List, Christian Daudt
On 09/22/2013 08:14 AM, Sebastian Hesselbarth wrote:
> On 09/20/2013 09:16 PM, Matt Porter wrote:
>> On Wed, Sep 18, 2013 at 07:53:33PM +0200, Sebastian Hesselbarth wrote:
>>> This is a patch set based on an RFC [1][2] sent earlier to provide a
>>> common
>>> arch/arm init for DT clock providers. Currently, the call to
>>> of_clk_init(NULL)
>>> to initialize DT clock providers is spread among several mach-dirs.
>>> Since most
>>> machs require DT clocks initialized before timers, no initcall can be
>>> used.
> [...]
>> Could you pick up the following patch for mach-bcm/ into this series?
>>
>> Thanks,
>> Matt
>>
>> From f65d048b3453447bb3e693cb21701c4d0c6375ed Mon Sep 17 00:00:00 2001
>> From: Matt Porter <matt.porter-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
>> Date: Fri, 20 Sep 2013 13:41:06 -0400
>> Subject: [PATCH] ARM: bcm: Remove custom .time_init hook
>>
>> With arch/arm calling of_clk_init(NULL) and clocksource_of_init()
>> this is no longer needed. The former is useful because we can make
>> use of dummy fixed clocks for drivers until the bcm281xx common
>> clock driver is ready.
>>
>> Signed-off-by: Matt Porter <matt.porter-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
>> Reviewed-by: Markus Mayer <markus.mayer-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
>> Reviewed-by: Christian Daudt <csd-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
>
> As a v2 is required due to calling of_clk_init() breaks non-DT builds,
> I will include this _if_ Christian actually gives his Acked-By.
Understood. Ccing Christian's new email as it just changed.
Thanks,
Matt
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 00/26] ARM: provide common arch init for DT clocks
[not found] ` <52407E2A.7030001-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
@ 2013-09-23 18:41 ` Christian Daudt
0 siblings, 0 replies; 14+ messages in thread
From: Christian Daudt @ 2013-09-23 18:41 UTC (permalink / raw)
To: Matt Porter
Cc: Sebastian Hesselbarth, Olof Johansson, Arnd Bergmann,
Russell King, STEricsson, linux-tegra-u79uwXL29TY76Z2rM5mHXA,
linux-rpi-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA,
kernel-F5mvAk5X5gdBDgjK7y7TUQ,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
Linux Kernel Mailing List, Christian Daudt
On 13-09-23 10:45 AM, Matt Porter wrote:
> On 09/22/2013 08:14 AM, Sebastian Hesselbarth wrote:
>> On 09/20/2013 09:16 PM, Matt Porter wrote:
>>> On Wed, Sep 18, 2013 at 07:53:33PM +0200, Sebastian Hesselbarth wrote:
>>>> This is a patch set based on an RFC [1][2] sent earlier to provide a
>>>> common
>>>> arch/arm init for DT clock providers. Currently, the call to
>>>> of_clk_init(NULL)
>>>> to initialize DT clock providers is spread among several mach-dirs.
>>>> Since most
>>>> machs require DT clocks initialized before timers, no initcall can be
>>>> used.
>> [...]
>>> Could you pick up the following patch for mach-bcm/ into this series?
>>>
>>> Thanks,
>>> Matt
>>>
>>> From f65d048b3453447bb3e693cb21701c4d0c6375ed Mon Sep 17 00:00:00 2001
>>> From: Matt Porter <matt.porter-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
>>> Date: Fri, 20 Sep 2013 13:41:06 -0400
>>> Subject: [PATCH] ARM: bcm: Remove custom .time_init hook
>>>
>>> With arch/arm calling of_clk_init(NULL) and clocksource_of_init()
>>> this is no longer needed. The former is useful because we can make
>>> use of dummy fixed clocks for drivers until the bcm281xx common
>>> clock driver is ready.
>>>
>>> Signed-off-by: Matt Porter <matt.porter-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
>>> Reviewed-by: Markus Mayer <markus.mayer-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
>>> Reviewed-by: Christian Daudt <csd-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
>>
>> As a v2 is required due to calling of_clk_init() breaks non-DT builds,
>> I will include this _if_ Christian actually gives his Acked-By.
>
> Understood. Ccing Christian's new email as it just changed.
Old one still works for this week :)
Acked-by: Christian Daudt <csd-dY08KVG/lbpWk0Htik3J/w@public.gmane.org>
Thanks,
csd
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2013-09-23 18:41 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-18 17:53 [PATCH 00/26] ARM: provide common arch init for DT clocks Sebastian Hesselbarth
2013-09-18 17:53 ` [PATCH 09/26] ARM: call of_clk_init from default time_init handler Sebastian Hesselbarth
[not found] ` <1379526839-14798-10-git-send-email-sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-09-23 7:54 ` [PATCH v2 " Sebastian Hesselbarth
[not found] ` <1379526839-14798-1-git-send-email-sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-09-18 17:53 ` [PATCH 24/26] ARM: tegra: remove custom .init_time hook Sebastian Hesselbarth
[not found] ` <1379526839-14798-25-git-send-email-sebastian.hesselbarth-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-09-18 19:38 ` Stephen Warren
2013-09-18 19:47 ` [PATCH 00/26] ARM: provide common arch init for DT clocks Jason Cooper
[not found] ` <20130918194711.GR19937-u4khhh1J0LxI1Ri9qeTfzeTW4wlIGRCZ@public.gmane.org>
2013-09-18 19:52 ` Sebastian Hesselbarth
2013-09-18 20:45 ` Stephen Warren
2013-09-18 20:48 ` Olof Johansson
2013-09-18 21:04 ` Sebastian Hesselbarth
2013-09-20 19:16 ` Matt Porter
2013-09-22 12:14 ` Sebastian Hesselbarth
[not found] ` <523EDF16.10102-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2013-09-23 17:45 ` Matt Porter
[not found] ` <52407E2A.7030001-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2013-09-23 18:41 ` Christian Daudt
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).