Mailing List Archive

[PATCH 00/26] ARM: provide common arch init for DT clocks
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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 00/26] ARM: provide common arch init for DT clocks [ In reply to ]
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.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 00/26] ARM: provide common arch init for DT clocks [ In reply to ]
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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 00/26] ARM: provide common arch init for DT clocks [ In reply to ]
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.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 00/26] ARM: provide common arch init for DT clocks [ In reply to ]
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 00/26] ARM: provide common arch init for DT clocks [ In reply to ]
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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 00/26] ARM: provide common arch init for DT clocks [ In reply to ]
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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 00/26] ARM: provide common arch init for DT clocks [ In reply to ]
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,
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 00/26] ARM: provide common arch init for DT clocks [ In reply to ]
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@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.

Understood. Ccing Christian's new email as it just changed.

Thanks,
Matt

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH 00/26] ARM: provide common arch init for DT clocks [ In reply to ]
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@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.
>
> Understood. Ccing Christian's new email as it just changed.
Old one still works for this week :)
Acked-by: Christian Daudt <csd@broadcom.com>

Thanks,
csd



--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/