public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] remove clk-private.h
@ 2015-01-30 21:25 Michael Turquette
  2015-01-30 21:25 ` [PATCH 1/3] arm: omap2+ remove dead clock code Michael Turquette
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Michael Turquette @ 2015-01-30 21:25 UTC (permalink / raw)
  To: linux-kernel; +Cc: Stephen Boyd, Michael Turquette

The clk-private.h header was always a nasty hack from the early days of
the common clk framework. Clock provider drivers have slowly migrated
away from it and we are now at a point to remove it completely and hide
its contents in drivers/clk/clk.c so that code outside of the core clk
framework cannot dereference these bookkeeping pointers.

This series removes the last two remaining references to the header,
migrates the struct definitions to clk.c and deletes the header.

Michael Turquette (3):
  arm: omap2+ remove dead clock code
  pci: xgene: do not use clk-private.h
  clk: remove clk-private.h

 arch/arm/mach-omap2/clock.c             |  16 ---
 arch/arm/mach-omap2/clock.h             |   5 -
 arch/arm/mach-omap2/clock_common_data.c |  14 --
 drivers/clk/clk.c                       |  45 +++++-
 drivers/pci/host/pci-xgene.c            |   2 +-
 include/linux/clk-private.h             | 243 --------------------------------
 6 files changed, 45 insertions(+), 280 deletions(-)
 delete mode 100644 include/linux/clk-private.h

-- 
1.9.1


^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH 1/3] arm: omap2+ remove dead clock code
  2015-01-30 21:25 [PATCH 0/3] remove clk-private.h Michael Turquette
@ 2015-01-30 21:25 ` Michael Turquette
  2015-01-30 21:51   ` Tony Lindgren
  2015-01-30 21:25 ` [PATCH 2/3] pci: xgene: do not use clk-private.h Michael Turquette
  2015-01-30 21:25 ` [PATCH 3/3] clk: remove clk-private.h Michael Turquette
  2 siblings, 1 reply; 9+ messages in thread
From: Michael Turquette @ 2015-01-30 21:25 UTC (permalink / raw)
  To: linux-kernel
  Cc: Stephen Boyd, Michael Turquette, Paul Walmsley, Tero Kristo,
	Tony Lindgren, linux-omap

Remove omap_clocks_register and dummy_ck. The former is not used anymore
now that the statically defined clk stuctures are replaced with proper
descriptors and registered with the framework.

The dummy clock in arch/arm/mach-omap2 is made redundant by the OMAP3+
clock data that migrated to drivers/clk.

An additional benefit to this clean-up is removing the references to
clk-private.h which will be removed.

Cc: Paul Walmsley <paul@pwsan.com>
Cc: Tero Kristo <t-kristo@ti.com>
Cc: Tony Lindgren <tony@atomide.com>
Signed-off-by: Michael Turquette <mturquette@linaro.org>
---
Cc: linux-omap@vger.kernel.org
 arch/arm/mach-omap2/clock.c             | 16 ----------------
 arch/arm/mach-omap2/clock.h             |  5 -----
 arch/arm/mach-omap2/clock_common_data.c | 14 --------------
 3 files changed, 35 deletions(-)

diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c
index 6ad5b4d..d9c128e 100644
--- a/arch/arm/mach-omap2/clock.c
+++ b/arch/arm/mach-omap2/clock.c
@@ -23,7 +23,6 @@
 #include <linux/clk-provider.h>
 #include <linux/io.h>
 #include <linux/bitops.h>
-#include <linux/clk-private.h>
 #include <asm/cpu.h>
 
 #include <trace/events/power.h>
@@ -630,21 +629,6 @@ const struct clk_hw_omap_ops clkhwops_wait = {
 };
 
 /**
- * omap_clocks_register - register an array of omap_clk
- * @ocs: pointer to an array of omap_clk to register
- */
-void __init omap_clocks_register(struct omap_clk oclks[], int cnt)
-{
-	struct omap_clk *c;
-
-	for (c = oclks; c < oclks + cnt; c++) {
-		clkdev_add(&c->lk);
-		if (!__clk_init(NULL, c->lk.clk))
-			omap2_init_clk_hw_omap_clocks(c->lk.clk);
-	}
-}
-
-/**
  * omap2_clk_switch_mpurate_at_boot - switch ARM MPU rate by boot-time argument
  * @mpurate_ck_name: clk name of the clock to change rate
  *
diff --git a/arch/arm/mach-omap2/clock.h b/arch/arm/mach-omap2/clock.h
index c5b3a7f..6a10ce3 100644
--- a/arch/arm/mach-omap2/clock.h
+++ b/arch/arm/mach-omap2/clock.h
@@ -245,7 +245,6 @@ struct ti_clk_features {
 extern struct ti_clk_features ti_clk_features;
 
 extern const struct clkops clkops_omap2_dflt_wait;
-extern const struct clkops clkops_dummy;
 extern const struct clkops clkops_omap2_dflt;
 
 extern struct clk_functions omap2_clk_functions;
@@ -254,8 +253,6 @@ extern const struct clksel_rate gpt_32k_rates[];
 extern const struct clksel_rate gpt_sys_rates[];
 extern const struct clksel_rate gfx_l3_rates[];
 extern const struct clksel_rate dsp_ick_rates[];
-extern struct clk_core dummy_ck_core;
-extern struct clk dummy_ck;
 
 extern const struct clk_hw_omap_ops clkhwops_iclk_wait;
 extern const struct clk_hw_omap_ops clkhwops_wait;
@@ -280,7 +277,5 @@ extern void __iomem *clk_memmaps[];
 extern int omap2_clkops_enable_clkdm(struct clk_hw *hw);
 extern void omap2_clkops_disable_clkdm(struct clk_hw *hw);
 
-extern void omap_clocks_register(struct omap_clk *oclks, int cnt);
-
 void __init ti_clk_init_features(void);
 #endif
diff --git a/arch/arm/mach-omap2/clock_common_data.c b/arch/arm/mach-omap2/clock_common_data.c
index febd0a2..61b60df 100644
--- a/arch/arm/mach-omap2/clock_common_data.c
+++ b/arch/arm/mach-omap2/clock_common_data.c
@@ -16,7 +16,6 @@
  * OMAP3xxx clock definition files.
  */
 
-#include <linux/clk-private.h>
 #include "clock.h"
 
 /* clksel_rate data common to 24xx/343x */
@@ -114,16 +113,3 @@ const struct clksel_rate div31_1to31_rates[] = {
 	{ .div = 31, .val = 31, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
 	{ .div = 0 },
 };
-
-/* Clocks shared between various OMAP SoCs */
-
-static struct clk_ops dummy_ck_ops = {};
-
-struct clk_core dummy_ck_core = {
-	.name = "dummy_clk",
-	.ops = &dummy_ck_ops,
-	.flags = CLK_IS_BASIC,
-};
-struct clk dummy_ck = {
-	.core = &dummy_ck_core,
-};
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 2/3] pci: xgene: do not use clk-private.h
  2015-01-30 21:25 [PATCH 0/3] remove clk-private.h Michael Turquette
  2015-01-30 21:25 ` [PATCH 1/3] arm: omap2+ remove dead clock code Michael Turquette
@ 2015-01-30 21:25 ` Michael Turquette
  2015-01-30 21:32   ` Stephen Boyd
  2015-01-30 21:25 ` [PATCH 3/3] clk: remove clk-private.h Michael Turquette
  2 siblings, 1 reply; 9+ messages in thread
From: Michael Turquette @ 2015-01-30 21:25 UTC (permalink / raw)
  To: linux-kernel; +Cc: Stephen Boyd, Michael Turquette, Tanmay Inamdar, linux-pci

The X-Gene PCIe driver consumes clocks and does not provide them.
Replace usage of clk-private.h with clk.h.

Cc: Tanmay Inamdar <tinamdar@apm.com>
Signed-off-by: Michael Turquette <mturquette@linaro.org>
---
Cc: linux-pci@vger.kernel.org
 drivers/pci/host/pci-xgene.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pci/host/pci-xgene.c b/drivers/pci/host/pci-xgene.c
index b1d0596..fdb348d 100644
--- a/drivers/pci/host/pci-xgene.c
+++ b/drivers/pci/host/pci-xgene.c
@@ -16,7 +16,7 @@
  * GNU General Public License for more details.
  *
  */
-#include <linux/clk-private.h>
+#include <linux/clk.h>
 #include <linux/delay.h>
 #include <linux/io.h>
 #include <linux/jiffies.h>
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH 3/3] clk: remove clk-private.h
  2015-01-30 21:25 [PATCH 0/3] remove clk-private.h Michael Turquette
  2015-01-30 21:25 ` [PATCH 1/3] arm: omap2+ remove dead clock code Michael Turquette
  2015-01-30 21:25 ` [PATCH 2/3] pci: xgene: do not use clk-private.h Michael Turquette
@ 2015-01-30 21:25 ` Michael Turquette
  2015-01-30 23:48   ` Stephen Boyd
  2015-02-02 14:01   ` Geert Uytterhoeven
  2 siblings, 2 replies; 9+ messages in thread
From: Michael Turquette @ 2015-01-30 21:25 UTC (permalink / raw)
  To: linux-kernel; +Cc: Stephen Boyd, Michael Turquette

Private clock framework data structures should be private, surprisingly.

Now that all platforms and drivers have been updated to remove static
initializations of struct clk and struct clk_core objects and all
references to clk-private.h have been removed we can move the
definitions of these structures into drivers/clk/clk.c and delete the
header.

Additionally the ugly DEFINE_CLK macros have been removed. Those were
used for static definitions of struct clk objects. That practice is no
longer allowed.

Signed-off-by: Michael Turquette <mturquette@linaro.org>
---
 drivers/clk/clk.c           |  45 +++++++-
 include/linux/clk-private.h | 243 --------------------------------------------
 2 files changed, 44 insertions(+), 244 deletions(-)
 delete mode 100644 include/linux/clk-private.h

diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c
index a29daf9..f34441a 100644
--- a/drivers/clk/clk.c
+++ b/drivers/clk/clk.c
@@ -9,7 +9,7 @@
  * Standard functionality for the common clock API.  See Documentation/clk.txt
  */
 
-#include <linux/clk-private.h>
+#include <linux/clk-provider.h>
 #include <linux/clk/clk-conf.h>
 #include <linux/module.h>
 #include <linux/mutex.h>
@@ -44,6 +44,49 @@ static bool clk_core_is_prepared(struct clk_core *clk);
 static bool clk_core_is_enabled(struct clk_core *clk);
 static struct clk_core *clk_core_lookup(const char *name);
 
+/***    private data structures    ***/
+
+struct clk_core {
+	const char		*name;
+	const struct clk_ops	*ops;
+	struct clk_hw		*hw;
+	struct module		*owner;
+	struct clk_core		*parent;
+	const char		**parent_names;
+	struct clk_core		**parents;
+	u8			num_parents;
+	u8			new_parent_index;
+	unsigned long		rate;
+	unsigned long		req_rate;
+	unsigned long		new_rate;
+	struct clk_core		*new_parent;
+	struct clk_core		*new_child;
+	unsigned long		flags;
+	unsigned int		enable_count;
+	unsigned int		prepare_count;
+	unsigned long		accuracy;
+	int			phase;
+	struct hlist_head	children;
+	struct hlist_node	child_node;
+	struct hlist_node	debug_node;
+	struct hlist_head	clks;
+	unsigned int		notifier_count;
+#ifdef CONFIG_DEBUG_FS
+	struct dentry		*dentry;
+#endif
+	struct kref		ref;
+};
+
+struct clk {
+	struct clk_core	*core;
+	const char *dev_id;
+	const char *con_id;
+
+	unsigned long min_rate;
+	unsigned long max_rate;
+	struct hlist_node child_node;
+};
+
 /***           locking             ***/
 static void clk_prepare_lock(void)
 {
diff --git a/include/linux/clk-private.h b/include/linux/clk-private.h
deleted file mode 100644
index 5136b30..0000000
--- a/include/linux/clk-private.h
+++ /dev/null
@@ -1,243 +0,0 @@
-/*
- *  linux/include/linux/clk-private.h
- *
- *  Copyright (c) 2010-2011 Jeremy Kerr <jeremy.kerr@canonical.com>
- *  Copyright (C) 2011-2012 Linaro Ltd <mturquette@linaro.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#ifndef __LINUX_CLK_PRIVATE_H
-#define __LINUX_CLK_PRIVATE_H
-
-#include <linux/clk-provider.h>
-#include <linux/kref.h>
-#include <linux/list.h>
-
-/*
- * WARNING: Do not include clk-private.h from any file that implements struct
- * clk_ops.  Doing so is a layering violation!
- *
- * This header exists only to allow for statically initialized clock data.  Any
- * static clock data must be defined in a separate file from the logic that
- * implements the clock operations for that same data.
- */
-
-#ifdef CONFIG_COMMON_CLK
-
-struct module;
-
-struct clk_core {
-	const char		*name;
-	const struct clk_ops	*ops;
-	struct clk_hw		*hw;
-	struct module		*owner;
-	struct clk_core		*parent;
-	const char		**parent_names;
-	struct clk_core		**parents;
-	u8			num_parents;
-	u8			new_parent_index;
-	unsigned long		rate;
-	unsigned long		req_rate;
-	unsigned long		new_rate;
-	struct clk_core		*new_parent;
-	struct clk_core		*new_child;
-	unsigned long		flags;
-	unsigned int		enable_count;
-	unsigned int		prepare_count;
-	unsigned long		accuracy;
-	int			phase;
-	struct hlist_head	children;
-	struct hlist_node	child_node;
-	struct hlist_node	debug_node;
-	struct hlist_head	clks;
-	unsigned int		notifier_count;
-#ifdef CONFIG_DEBUG_FS
-	struct dentry		*dentry;
-#endif
-	struct kref		ref;
-};
-
-struct clk {
-	struct clk_core	*core;
-	const char *dev_id;
-	const char *con_id;
-
-	unsigned long min_rate;
-	unsigned long max_rate;
-	struct hlist_node child_node;
-};
-
-/*
- * DOC: Basic clock implementations common to many platforms
- *
- * Each basic clock hardware type is comprised of a structure describing the
- * clock hardware, implementations of the relevant callbacks in struct clk_ops,
- * unique flags for that hardware type, a registration function and an
- * alternative macro for static initialization
- */
-
-#define DEFINE_CLK(_name, _ops, _flags, _parent_names,		\
-		_parents)					\
-	static struct clk _name = {				\
-		.core = &_name##_core				\
-	};							\
-	static struct clk_core _name##_core = {			\
-		.name = #_name,					\
-		.ops = &_ops,					\
-		.hw = &_name##_hw.hw,				\
-		.parent_names = _parent_names,			\
-		.num_parents = ARRAY_SIZE(_parent_names),	\
-		.parents = _parents,				\
-		.flags = _flags | CLK_IS_BASIC,			\
-	}
-
-#define DEFINE_CLK_FIXED_RATE(_name, _flags, _rate,		\
-				_fixed_rate_flags)		\
-	static struct clk _name;				\
-	static struct clk_core _name##_core;			\
-	static const char *_name##_parent_names[] = {};		\
-	static struct clk_fixed_rate _name##_hw = {		\
-		.hw = {						\
-			.core = &_name##_core,			\
-			.clk = &_name,				\
-		},						\
-		.fixed_rate = _rate,				\
-		.flags = _fixed_rate_flags,			\
-	};							\
-	DEFINE_CLK(_name, clk_fixed_rate_ops, _flags,		\
-			_name##_parent_names, NULL);
-
-#define DEFINE_CLK_GATE(_name, _parent_name, _parent_ptr,	\
-				_flags, _reg, _bit_idx,		\
-				_gate_flags, _lock)		\
-	static struct clk _name;				\
-	static struct clk_core _name##_core;			\
-	static const char *_name##_parent_names[] = {		\
-		_parent_name,					\
-	};							\
-	static struct clk_core *_name##_parents[] = {		\
-		_parent_ptr,					\
-	};							\
-	static struct clk_gate _name##_hw = {			\
-		.hw = {						\
-			.core = &_name##_core,			\
-			.clk = &_name,				\
-		},						\
-		.reg = _reg,					\
-		.bit_idx = _bit_idx,				\
-		.flags = _gate_flags,				\
-		.lock = _lock,					\
-	};							\
-	DEFINE_CLK(_name, clk_gate_ops, _flags,			\
-			_name##_parent_names, _name##_parents);
-
-#define _DEFINE_CLK_DIVIDER(_name, _parent_name, _parent_ptr,	\
-				_flags, _reg, _shift, _width,	\
-				_divider_flags, _table, _lock)	\
-	static struct clk _name;				\
-	static struct clk_core _name##_core;			\
-	static const char *_name##_parent_names[] = {		\
-		_parent_name,					\
-	};							\
-	static struct clk_core *_name##_parents[] = {		\
-		_parent_ptr,					\
-	};							\
-	static struct clk_divider _name##_hw = {		\
-		.hw = {						\
-			.core = &_name##_core,			\
-			.clk = &_name,				\
-		},						\
-		.reg = _reg,					\
-		.shift = _shift,				\
-		.width = _width,				\
-		.flags = _divider_flags,			\
-		.table = _table,				\
-		.lock = _lock,					\
-	};							\
-	DEFINE_CLK(_name, clk_divider_ops, _flags,		\
-			_name##_parent_names, _name##_parents);
-
-#define DEFINE_CLK_DIVIDER(_name, _parent_name, _parent_ptr,	\
-				_flags, _reg, _shift, _width,	\
-				_divider_flags, _lock)		\
-	_DEFINE_CLK_DIVIDER(_name, _parent_name, _parent_ptr,	\
-				_flags, _reg, _shift, _width,	\
-				_divider_flags, NULL, _lock)
-
-#define DEFINE_CLK_DIVIDER_TABLE(_name, _parent_name,		\
-				_parent_ptr, _flags, _reg,	\
-				_shift, _width, _divider_flags,	\
-				_table, _lock)			\
-	_DEFINE_CLK_DIVIDER(_name, _parent_name, _parent_ptr,	\
-				_flags, _reg, _shift, _width,	\
-				_divider_flags, _table, _lock)	\
-
-#define DEFINE_CLK_MUX(_name, _parent_names, _parents, _flags,	\
-				_reg, _shift, _width,		\
-				_mux_flags, _lock)		\
-	static struct clk _name;				\
-	static struct clk_core _name##_core;			\
-	static struct clk_mux _name##_hw = {			\
-		.hw = {						\
-			.core = &_name##_core,			\
-			.clk = &_name,				\
-		},						\
-		.reg = _reg,					\
-		.shift = _shift,				\
-		.mask = BIT(_width) - 1,			\
-		.flags = _mux_flags,				\
-		.lock = _lock,					\
-	};							\
-	DEFINE_CLK(_name, clk_mux_ops, _flags, _parent_names,	\
-			_parents);
-
-#define DEFINE_CLK_FIXED_FACTOR(_name, _parent_name,		\
-				_parent_ptr, _flags,		\
-				_mult, _div)			\
-	static struct clk _name;				\
-	static struct clk_core _name##_core;			\
-	static const char *_name##_parent_names[] = {		\
-		_parent_name,					\
-	};							\
-	static struct clk_core *_name##_parents[] = {		\
-		_parent_ptr,					\
-	};							\
-	static struct clk_fixed_factor _name##_hw = {		\
-		.hw = {						\
-			.core = &_name##_core,			\
-			.clk = &_name,				\
-		},						\
-		.mult = _mult,					\
-		.div = _div,					\
-	};							\
-	DEFINE_CLK(_name, clk_fixed_factor_ops, _flags,		\
-			_name##_parent_names, _name##_parents);
-
-/**
- * __clk_init - initialize the data structures in a struct clk
- * @dev:	device initializing this clk, placeholder for now
- * @clk:	clk being initialized
- *
- * Initializes the lists in struct clk, queries the hardware for the
- * parent and rate and sets them both.
- *
- * Any struct clk passed into __clk_init must have the following members
- * populated:
- * 	.name
- * 	.ops
- * 	.hw
- * 	.parent_names
- * 	.num_parents
- * 	.flags
- *
- * It is not necessary to call clk_register if __clk_init is used directly with
- * statically initialized clock data.
- *
- * Returns 0 on success, otherwise an error code.
- */
-int __clk_init(struct device *dev, struct clk *clk);
-
-#endif /* CONFIG_COMMON_CLK */
-#endif /* CLK_PRIVATE_H */
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH 2/3] pci: xgene: do not use clk-private.h
  2015-01-30 21:25 ` [PATCH 2/3] pci: xgene: do not use clk-private.h Michael Turquette
@ 2015-01-30 21:32   ` Stephen Boyd
  0 siblings, 0 replies; 9+ messages in thread
From: Stephen Boyd @ 2015-01-30 21:32 UTC (permalink / raw)
  To: Michael Turquette, linux-kernel; +Cc: Tanmay Inamdar, linux-pci

On 01/30/15 13:25, Michael Turquette wrote:
> The X-Gene PCIe driver consumes clocks and does not provide them.
> Replace usage of clk-private.h with clk.h.
>
> Cc: Tanmay Inamdar <tinamdar@apm.com>
> Signed-off-by: Michael Turquette <mturquette@linaro.org>
> ---

I already sent this one through the pci tree
(29ef709195977d151199464b0c4ce4d8f193f244 in next) and it got picked up.
Sorry. I guess it doesn't hurt to also send it through the clk tree if
we can remove the entire header file.

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 1/3] arm: omap2+ remove dead clock code
  2015-01-30 21:25 ` [PATCH 1/3] arm: omap2+ remove dead clock code Michael Turquette
@ 2015-01-30 21:51   ` Tony Lindgren
  0 siblings, 0 replies; 9+ messages in thread
From: Tony Lindgren @ 2015-01-30 21:51 UTC (permalink / raw)
  To: Michael Turquette
  Cc: linux-kernel, Stephen Boyd, Paul Walmsley, Tero Kristo,
	linux-omap

* Michael Turquette <mturquette@linaro.org> [150130 13:28]:
> Remove omap_clocks_register and dummy_ck. The former is not used anymore
> now that the statically defined clk stuctures are replaced with proper
> descriptors and registered with the framework.
> 
> The dummy clock in arch/arm/mach-omap2 is made redundant by the OMAP3+
> clock data that migrated to drivers/clk.
> 
> An additional benefit to this clean-up is removing the references to
> clk-private.h which will be removed.

Right on! Assuming things sitll build and boot, please feel free to
apply this via your clock patches:

Acked-by: Tony Lindgren <tony@atomide.com>
 
> Cc: Paul Walmsley <paul@pwsan.com>
> Cc: Tero Kristo <t-kristo@ti.com>
> Cc: Tony Lindgren <tony@atomide.com>
> Signed-off-by: Michael Turquette <mturquette@linaro.org>
> ---
> Cc: linux-omap@vger.kernel.org
>  arch/arm/mach-omap2/clock.c             | 16 ----------------
>  arch/arm/mach-omap2/clock.h             |  5 -----
>  arch/arm/mach-omap2/clock_common_data.c | 14 --------------
>  3 files changed, 35 deletions(-)
> 
> diff --git a/arch/arm/mach-omap2/clock.c b/arch/arm/mach-omap2/clock.c
> index 6ad5b4d..d9c128e 100644
> --- a/arch/arm/mach-omap2/clock.c
> +++ b/arch/arm/mach-omap2/clock.c
> @@ -23,7 +23,6 @@
>  #include <linux/clk-provider.h>
>  #include <linux/io.h>
>  #include <linux/bitops.h>
> -#include <linux/clk-private.h>
>  #include <asm/cpu.h>
>  
>  #include <trace/events/power.h>
> @@ -630,21 +629,6 @@ const struct clk_hw_omap_ops clkhwops_wait = {
>  };
>  
>  /**
> - * omap_clocks_register - register an array of omap_clk
> - * @ocs: pointer to an array of omap_clk to register
> - */
> -void __init omap_clocks_register(struct omap_clk oclks[], int cnt)
> -{
> -	struct omap_clk *c;
> -
> -	for (c = oclks; c < oclks + cnt; c++) {
> -		clkdev_add(&c->lk);
> -		if (!__clk_init(NULL, c->lk.clk))
> -			omap2_init_clk_hw_omap_clocks(c->lk.clk);
> -	}
> -}
> -
> -/**
>   * omap2_clk_switch_mpurate_at_boot - switch ARM MPU rate by boot-time argument
>   * @mpurate_ck_name: clk name of the clock to change rate
>   *
> diff --git a/arch/arm/mach-omap2/clock.h b/arch/arm/mach-omap2/clock.h
> index c5b3a7f..6a10ce3 100644
> --- a/arch/arm/mach-omap2/clock.h
> +++ b/arch/arm/mach-omap2/clock.h
> @@ -245,7 +245,6 @@ struct ti_clk_features {
>  extern struct ti_clk_features ti_clk_features;
>  
>  extern const struct clkops clkops_omap2_dflt_wait;
> -extern const struct clkops clkops_dummy;
>  extern const struct clkops clkops_omap2_dflt;
>  
>  extern struct clk_functions omap2_clk_functions;
> @@ -254,8 +253,6 @@ extern const struct clksel_rate gpt_32k_rates[];
>  extern const struct clksel_rate gpt_sys_rates[];
>  extern const struct clksel_rate gfx_l3_rates[];
>  extern const struct clksel_rate dsp_ick_rates[];
> -extern struct clk_core dummy_ck_core;
> -extern struct clk dummy_ck;
>  
>  extern const struct clk_hw_omap_ops clkhwops_iclk_wait;
>  extern const struct clk_hw_omap_ops clkhwops_wait;
> @@ -280,7 +277,5 @@ extern void __iomem *clk_memmaps[];
>  extern int omap2_clkops_enable_clkdm(struct clk_hw *hw);
>  extern void omap2_clkops_disable_clkdm(struct clk_hw *hw);
>  
> -extern void omap_clocks_register(struct omap_clk *oclks, int cnt);
> -
>  void __init ti_clk_init_features(void);
>  #endif
> diff --git a/arch/arm/mach-omap2/clock_common_data.c b/arch/arm/mach-omap2/clock_common_data.c
> index febd0a2..61b60df 100644
> --- a/arch/arm/mach-omap2/clock_common_data.c
> +++ b/arch/arm/mach-omap2/clock_common_data.c
> @@ -16,7 +16,6 @@
>   * OMAP3xxx clock definition files.
>   */
>  
> -#include <linux/clk-private.h>
>  #include "clock.h"
>  
>  /* clksel_rate data common to 24xx/343x */
> @@ -114,16 +113,3 @@ const struct clksel_rate div31_1to31_rates[] = {
>  	{ .div = 31, .val = 31, .flags = RATE_IN_4430 | RATE_IN_AM33XX },
>  	{ .div = 0 },
>  };
> -
> -/* Clocks shared between various OMAP SoCs */
> -
> -static struct clk_ops dummy_ck_ops = {};
> -
> -struct clk_core dummy_ck_core = {
> -	.name = "dummy_clk",
> -	.ops = &dummy_ck_ops,
> -	.flags = CLK_IS_BASIC,
> -};
> -struct clk dummy_ck = {
> -	.core = &dummy_ck_core,
> -};
> -- 
> 1.9.1
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 3/3] clk: remove clk-private.h
  2015-01-30 21:25 ` [PATCH 3/3] clk: remove clk-private.h Michael Turquette
@ 2015-01-30 23:48   ` Stephen Boyd
  2015-01-31  1:18     ` Mike Turquette
  2015-02-02 14:01   ` Geert Uytterhoeven
  1 sibling, 1 reply; 9+ messages in thread
From: Stephen Boyd @ 2015-01-30 23:48 UTC (permalink / raw)
  To: Michael Turquette, linux-kernel

On 01/30/15 13:25, Michael Turquette wrote:
> Private clock framework data structures should be private, surprisingly.
>
> Now that all platforms and drivers have been updated to remove static
> initializations of struct clk and struct clk_core objects and all
> references to clk-private.h have been removed we can move the
> definitions of these structures into drivers/clk/clk.c and delete the
> header.
>
> Additionally the ugly DEFINE_CLK macros have been removed. Those were
> used for static definitions of struct clk objects. That practice is no
> longer allowed.
>
> Signed-off-by: Michael Turquette <mturquette@linaro.org>

This is great!

Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>

given the minor comment below.

> - * Returns 0 on success, otherwise an error code.
> - */
> -int __clk_init(struct device *dev, struct clk *clk);

Shouldn't __clk_init become static now in clk.c?

-- 
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 3/3] clk: remove clk-private.h
  2015-01-30 23:48   ` Stephen Boyd
@ 2015-01-31  1:18     ` Mike Turquette
  0 siblings, 0 replies; 9+ messages in thread
From: Mike Turquette @ 2015-01-31  1:18 UTC (permalink / raw)
  To: Stephen Boyd, linux-kernel

Quoting Stephen Boyd (2015-01-30 15:48:46)
> On 01/30/15 13:25, Michael Turquette wrote:
> > Private clock framework data structures should be private, surprisingly.
> >
> > Now that all platforms and drivers have been updated to remove static
> > initializations of struct clk and struct clk_core objects and all
> > references to clk-private.h have been removed we can move the
> > definitions of these structures into drivers/clk/clk.c and delete the
> > header.
> >
> > Additionally the ugly DEFINE_CLK macros have been removed. Those were
> > used for static definitions of struct clk objects. That practice is no
> > longer allowed.
> >
> > Signed-off-by: Michael Turquette <mturquette@linaro.org>
> 
> This is great!
> 
> Reviewed-by: Stephen Boyd <sboyd@codeaurora.org>
> 
> given the minor comment below.
> 
> > - * Returns 0 on success, otherwise an error code.
> > - */
> > -int __clk_init(struct device *dev, struct clk *clk);
> 
> Shouldn't __clk_init become static now in clk.c?

Good catch!

Regards,
Mike

> 
> -- 
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
> a Linux Foundation Collaborative Project
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH 3/3] clk: remove clk-private.h
  2015-01-30 21:25 ` [PATCH 3/3] clk: remove clk-private.h Michael Turquette
  2015-01-30 23:48   ` Stephen Boyd
@ 2015-02-02 14:01   ` Geert Uytterhoeven
  1 sibling, 0 replies; 9+ messages in thread
From: Geert Uytterhoeven @ 2015-02-02 14:01 UTC (permalink / raw)
  To: Michael Turquette; +Cc: linux-kernel@vger.kernel.org, Stephen Boyd

Hi Mike,

On Fri, Jan 30, 2015 at 10:25 PM, Michael Turquette
<mturquette@linaro.org> wrote:
> Private clock framework data structures should be private, surprisingly.
>
> Now that all platforms and drivers have been updated to remove static
> initializations of struct clk and struct clk_core objects and all
> references to clk-private.h have been removed we can move the
> definitions of these structures into drivers/clk/clk.c and delete the
> header.

Documentation/clk.txt still has a few references. It even contains an
out-of-date defintion of struct clk.

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2015-02-02 14:01 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-30 21:25 [PATCH 0/3] remove clk-private.h Michael Turquette
2015-01-30 21:25 ` [PATCH 1/3] arm: omap2+ remove dead clock code Michael Turquette
2015-01-30 21:51   ` Tony Lindgren
2015-01-30 21:25 ` [PATCH 2/3] pci: xgene: do not use clk-private.h Michael Turquette
2015-01-30 21:32   ` Stephen Boyd
2015-01-30 21:25 ` [PATCH 3/3] clk: remove clk-private.h Michael Turquette
2015-01-30 23:48   ` Stephen Boyd
2015-01-31  1:18     ` Mike Turquette
2015-02-02 14:01   ` Geert Uytterhoeven

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox