linux-tegra.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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).