linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] fixes for struct clk_core migration
@ 2014-09-09  6:07 Mike Turquette
  2014-09-09  6:07 ` [PATCH 1/2] acpi: lpss: convert from struct clk to struct clk_core Mike Turquette
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Mike Turquette @ 2014-09-09  6:07 UTC (permalink / raw)
  To: s.nawrocki, rjw, tomeu.vizoso
  Cc: linux-kernel, linux-arm-kernel, patches, Mike Turquette

A few build issues have popped up with more extensive testing of the
patches to split the clock framework into a proper provider/consumer
relationship. [0]

The first patch adapts Intel's LPSS driver to use the clock provider
APIs. If no one objects to this patch then I will fold it into Tomeu's
patch #2. [1]

Tomeu, can you run your Coccinelle script again against all of arch/ and
drivers/ to make sure nothing else was left out?

The second patch brings the asm-generic version of clkdev.h up to speed
with all of the asm-specific versions, by not declaring __clk_get and
__clk_put if CONFIG_COMMON_CLK is set. If no one objects to this patch
then I will move it to the front of the patch stack when rebasing
Tomeu's series.

[0] http://lkml.kernel.org/r/<1409758148-20104-1-git-send-email-tomeu.vizoso@collabora.com>
[1] http://lkml.kernel.org/r/<1409758317-20564-1-git-send-email-tomeu.vizoso@collabora.com>

Mike Turquette (2):
  acpi: lpss: convert from struct clk to struct clk_core
  asm-generic: COMMON_CLK defines __clk_{get,put}

 drivers/acpi/acpi_lpss.c               | 6 +++---
 include/asm-generic/clkdev.h           | 2 ++
 include/linux/platform_data/clk-lpss.h | 2 +-
 3 files changed, 6 insertions(+), 4 deletions(-)

-- 
1.8.3.2


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

* [PATCH 1/2] acpi: lpss: convert from struct clk to struct clk_core
  2014-09-09  6:07 [PATCH 0/2] fixes for struct clk_core migration Mike Turquette
@ 2014-09-09  6:07 ` Mike Turquette
  2014-09-09 13:16   ` Rafael J. Wysocki
  2014-09-09  6:11 ` [PATCH 2/2] asm-generic: COMMON_CLK defines __clk_{get,put} Mike Turquette
  2014-09-09 15:21 ` [PATCH 0/2] fixes for struct clk_core migration Tomeu Vizoso
  2 siblings, 1 reply; 7+ messages in thread
From: Mike Turquette @ 2014-09-09  6:07 UTC (permalink / raw)
  To: rjw, tomeu.vizoso; +Cc: linux-kernel, linux-arm-kernel, patches, Mike Turquette

Looks like this driver was missed during the original mass driver
rework[0]. This patch converts the LPSS driver to the new clock provider
data type (struct clk_core).

If there are no objections I propose to roll this patch into a rebase of
that patch[0] in my tree.

[0] http://lkml.kernel.org/r/<1409758317-20564-1-git-send-email-tomeu.vizoso@collabora.com>

Signed-off-by: Mike Turquette <mturquette@linaro.org>
---
 drivers/acpi/acpi_lpss.c               | 6 +++---
 include/linux/platform_data/clk-lpss.h | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c
index 9dfec48..454179f 100644
--- a/drivers/acpi/acpi_lpss.c
+++ b/drivers/acpi/acpi_lpss.c
@@ -57,7 +57,7 @@ ACPI_MODULE_NAME("acpi_lpss");
 struct lpss_shared_clock {
 	const char *name;
 	unsigned long rate;
-	struct clk *clk;
+	struct clk_core *clk;
 };
 
 struct lpss_private_data;
@@ -83,7 +83,7 @@ static struct lpss_device_desc lpss_dma_desc = {
 struct lpss_private_data {
 	void __iomem *mmio_base;
 	resource_size_t mmio_size;
-	struct clk *clk;
+	struct clk_core *clk;
 	const struct lpss_device_desc *dev_desc;
 	u32 prv_reg_ctx[LPSS_PRV_REG_COUNT];
 };
@@ -278,7 +278,7 @@ static int register_device_clock(struct acpi_device *adev,
 	const struct lpss_device_desc *dev_desc = pdata->dev_desc;
 	struct lpss_shared_clock *shared_clock = dev_desc->shared_clock;
 	const char *devname = dev_name(&adev->dev);
-	struct clk *clk = ERR_PTR(-ENODEV);
+	struct clk_core *clk = ERR_PTR(-ENODEV);
 	struct lpss_clk_data *clk_data;
 	const char *parent, *clk_name;
 	void __iomem *prv_base;
diff --git a/include/linux/platform_data/clk-lpss.h b/include/linux/platform_data/clk-lpss.h
index 2390199..3c3237c 100644
--- a/include/linux/platform_data/clk-lpss.h
+++ b/include/linux/platform_data/clk-lpss.h
@@ -15,7 +15,7 @@
 
 struct lpss_clk_data {
 	const char *name;
-	struct clk *clk;
+	struct clk_core *clk;
 };
 
 extern int lpt_clk_init(void);
-- 
1.8.3.2


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

* [PATCH 2/2] asm-generic: COMMON_CLK defines __clk_{get,put}
  2014-09-09  6:07 [PATCH 0/2] fixes for struct clk_core migration Mike Turquette
  2014-09-09  6:07 ` [PATCH 1/2] acpi: lpss: convert from struct clk to struct clk_core Mike Turquette
@ 2014-09-09  6:11 ` Mike Turquette
  2014-09-09 15:21 ` [PATCH 0/2] fixes for struct clk_core migration Tomeu Vizoso
  2 siblings, 0 replies; 7+ messages in thread
From: Mike Turquette @ 2014-09-09  6:11 UTC (permalink / raw)
  To: s.nawrocki, tomeu.vizoso
  Cc: linux, linux-kernel, linux-arm-kernel, patches, Mike Turquette

If CONFIG_COMMON_CLK is selected then __clk_get and __clk_put are
defined in drivers/clk/clk.c and declared in include/linux/clkdev.h.

Sylwester's series[0] to properly support clk_{get,put} in the common
clock framework made changes to the asm-specific clkdev.h headers, but
not the asm-generic version. Tomeu's recent changes[1] to introduce a
provider/consumer split in the clock framework uncovered this problem,
causing the following build error on any architecture using the
asm-generic clkdev.h (e.g. x86 architecture and the ACPI LPSS driver):

In file included from drivers/acpi/acpi_lpss.c:15:0:
include/linux/clkdev.h:59:5: error: conflicting types for ‘__clk_get’
 int __clk_get(struct clk_core *clk);
     ^
In file included from arch/x86/include/generated/asm/clkdev.h:1:0,
                 from include/linux/clkdev.h:15,
                 from drivers/acpi/acpi_lpss.c:15:
include/asm-generic/clkdev.h:20:19: note: previous definition of ‘__clk_get’ was here
 static inline int __clk_get(struct clk *clk) { return 1; }
                   ^

Fixed by only declarating  __clk_get and __clk_put when
CONFIG_COMMON_CLK is set.

[0] http://lkml.kernel.org/r/<1386177127-2894-5-git-send-email-s.nawrocki@samsung.com>
[1] http://lkml.kernel.org/r/<1409758148-20104-1-git-send-email-tomeu.vizoso@collabora.com>

Signed-off-by: Mike Turquette <mturquette@linaro.org>
---
 include/asm-generic/clkdev.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/include/asm-generic/clkdev.h b/include/asm-generic/clkdev.h
index 90a32a6..4ff33474 100644
--- a/include/asm-generic/clkdev.h
+++ b/include/asm-generic/clkdev.h
@@ -15,10 +15,12 @@
 
 #include <linux/slab.h>
 
+#ifndef CONFIG_COMMON_CLK
 struct clk;
 
 static inline int __clk_get(struct clk *clk) { return 1; }
 static inline void __clk_put(struct clk *clk) { }
+#endif
 
 static inline struct clk_lookup_alloc *__clkdev_alloc(size_t size)
 {
-- 
1.8.3.2


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

* Re: [PATCH 1/2] acpi: lpss: convert from struct clk to struct clk_core
  2014-09-09  6:07 ` [PATCH 1/2] acpi: lpss: convert from struct clk to struct clk_core Mike Turquette
@ 2014-09-09 13:16   ` Rafael J. Wysocki
  2014-09-09 13:52     ` Mika Westerberg
  0 siblings, 1 reply; 7+ messages in thread
From: Rafael J. Wysocki @ 2014-09-09 13:16 UTC (permalink / raw)
  To: Mike Turquette, Mika Westerberg
  Cc: tomeu.vizoso, linux-kernel, linux-arm-kernel, patches

On Monday, September 08, 2014 11:07:47 PM Mike Turquette wrote:
> Looks like this driver was missed during the original mass driver
> rework[0]. This patch converts the LPSS driver to the new clock provider
> data type (struct clk_core).
> 
> If there are no objections I propose to roll this patch into a rebase of
> that patch[0] in my tree.
> 
> [0] http://lkml.kernel.org/r/<1409758317-20564-1-git-send-email-tomeu.vizoso@collabora.com>
> 
> Signed-off-by: Mike Turquette <mturquette@linaro.org>

Mika, any comments here?

> ---
>  drivers/acpi/acpi_lpss.c               | 6 +++---
>  include/linux/platform_data/clk-lpss.h | 2 +-
>  2 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c
> index 9dfec48..454179f 100644
> --- a/drivers/acpi/acpi_lpss.c
> +++ b/drivers/acpi/acpi_lpss.c
> @@ -57,7 +57,7 @@ ACPI_MODULE_NAME("acpi_lpss");
>  struct lpss_shared_clock {
>  	const char *name;
>  	unsigned long rate;
> -	struct clk *clk;
> +	struct clk_core *clk;
>  };
>  
>  struct lpss_private_data;
> @@ -83,7 +83,7 @@ static struct lpss_device_desc lpss_dma_desc = {
>  struct lpss_private_data {
>  	void __iomem *mmio_base;
>  	resource_size_t mmio_size;
> -	struct clk *clk;
> +	struct clk_core *clk;
>  	const struct lpss_device_desc *dev_desc;
>  	u32 prv_reg_ctx[LPSS_PRV_REG_COUNT];
>  };
> @@ -278,7 +278,7 @@ static int register_device_clock(struct acpi_device *adev,
>  	const struct lpss_device_desc *dev_desc = pdata->dev_desc;
>  	struct lpss_shared_clock *shared_clock = dev_desc->shared_clock;
>  	const char *devname = dev_name(&adev->dev);
> -	struct clk *clk = ERR_PTR(-ENODEV);
> +	struct clk_core *clk = ERR_PTR(-ENODEV);
>  	struct lpss_clk_data *clk_data;
>  	const char *parent, *clk_name;
>  	void __iomem *prv_base;
> diff --git a/include/linux/platform_data/clk-lpss.h b/include/linux/platform_data/clk-lpss.h
> index 2390199..3c3237c 100644
> --- a/include/linux/platform_data/clk-lpss.h
> +++ b/include/linux/platform_data/clk-lpss.h
> @@ -15,7 +15,7 @@
>  
>  struct lpss_clk_data {
>  	const char *name;
> -	struct clk *clk;
> +	struct clk_core *clk;
>  };
>  
>  extern int lpt_clk_init(void);
> 

-- 
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

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

* Re: [PATCH 1/2] acpi: lpss: convert from struct clk to struct clk_core
  2014-09-09 13:16   ` Rafael J. Wysocki
@ 2014-09-09 13:52     ` Mika Westerberg
  2014-09-10  5:30       ` Heikki Krogerus
  0 siblings, 1 reply; 7+ messages in thread
From: Mika Westerberg @ 2014-09-09 13:52 UTC (permalink / raw)
  To: Rafael J. Wysocki
  Cc: Mike Turquette, tomeu.vizoso, linux-kernel, linux-arm-kernel,
	patches, Heikki Krogerus

On Tue, Sep 09, 2014 at 03:16:29PM +0200, Rafael J. Wysocki wrote:
> On Monday, September 08, 2014 11:07:47 PM Mike Turquette wrote:
> > Looks like this driver was missed during the original mass driver
> > rework[0]. This patch converts the LPSS driver to the new clock provider
> > data type (struct clk_core).
> > 
> > If there are no objections I propose to roll this patch into a rebase of
> > that patch[0] in my tree.
> > 
> > [0] http://lkml.kernel.org/r/<1409758317-20564-1-git-send-email-tomeu.vizoso@collabora.com>
> > 
> > Signed-off-by: Mike Turquette <mturquette@linaro.org>
> 
> Mika, any comments here?

Adding Heikki who recently did some clock changes to acpi_lpss.c.

To me this looks fine.

> 
> > ---
> >  drivers/acpi/acpi_lpss.c               | 6 +++---
> >  include/linux/platform_data/clk-lpss.h | 2 +-
> >  2 files changed, 4 insertions(+), 4 deletions(-)
> > 
> > diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c
> > index 9dfec48..454179f 100644
> > --- a/drivers/acpi/acpi_lpss.c
> > +++ b/drivers/acpi/acpi_lpss.c
> > @@ -57,7 +57,7 @@ ACPI_MODULE_NAME("acpi_lpss");
> >  struct lpss_shared_clock {
> >  	const char *name;
> >  	unsigned long rate;
> > -	struct clk *clk;
> > +	struct clk_core *clk;
> >  };
> >  
> >  struct lpss_private_data;
> > @@ -83,7 +83,7 @@ static struct lpss_device_desc lpss_dma_desc = {
> >  struct lpss_private_data {
> >  	void __iomem *mmio_base;
> >  	resource_size_t mmio_size;
> > -	struct clk *clk;
> > +	struct clk_core *clk;
> >  	const struct lpss_device_desc *dev_desc;
> >  	u32 prv_reg_ctx[LPSS_PRV_REG_COUNT];
> >  };
> > @@ -278,7 +278,7 @@ static int register_device_clock(struct acpi_device *adev,
> >  	const struct lpss_device_desc *dev_desc = pdata->dev_desc;
> >  	struct lpss_shared_clock *shared_clock = dev_desc->shared_clock;
> >  	const char *devname = dev_name(&adev->dev);
> > -	struct clk *clk = ERR_PTR(-ENODEV);
> > +	struct clk_core *clk = ERR_PTR(-ENODEV);
> >  	struct lpss_clk_data *clk_data;
> >  	const char *parent, *clk_name;
> >  	void __iomem *prv_base;
> > diff --git a/include/linux/platform_data/clk-lpss.h b/include/linux/platform_data/clk-lpss.h
> > index 2390199..3c3237c 100644
> > --- a/include/linux/platform_data/clk-lpss.h
> > +++ b/include/linux/platform_data/clk-lpss.h
> > @@ -15,7 +15,7 @@
> >  
> >  struct lpss_clk_data {
> >  	const char *name;
> > -	struct clk *clk;
> > +	struct clk_core *clk;
> >  };
> >  
> >  extern int lpt_clk_init(void);
> > 
> 
> -- 
> I speak only for myself.
> Rafael J. Wysocki, Intel Open Source Technology Center.

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

* Re: [PATCH 0/2] fixes for struct clk_core migration
  2014-09-09  6:07 [PATCH 0/2] fixes for struct clk_core migration Mike Turquette
  2014-09-09  6:07 ` [PATCH 1/2] acpi: lpss: convert from struct clk to struct clk_core Mike Turquette
  2014-09-09  6:11 ` [PATCH 2/2] asm-generic: COMMON_CLK defines __clk_{get,put} Mike Turquette
@ 2014-09-09 15:21 ` Tomeu Vizoso
  2 siblings, 0 replies; 7+ messages in thread
From: Tomeu Vizoso @ 2014-09-09 15:21 UTC (permalink / raw)
  To: Mike Turquette
  Cc: Sylwester Nawrocki, Rafael J. Wysocki, linux-kernel,
	linux-arm-kernel, patches

On 9 September 2014 08:07, Mike Turquette <mturquette@linaro.org> wrote:
> A few build issues have popped up with more extensive testing of the
> patches to split the clock framework into a proper provider/consumer
> relationship. [0]
>
> The first patch adapts Intel's LPSS driver to use the clock provider
> APIs. If no one objects to this patch then I will fold it into Tomeu's
> patch #2. [1]
>
> Tomeu, can you run your Coccinelle script again against all of arch/ and
> drivers/ to make sure nothing else was left out?

Sure, I had to add a few new files that are now in linux-next,
including the lpss driver.

I just sent a v10 of my series, but the only changed commit is the
generated one:

https://lkml.kernel.org/r/<1410271497-27148-1-git-send-email-tomeu.vizoso@collabora.com>

Cheers,

Tomeu

> The second patch brings the asm-generic version of clkdev.h up to speed
> with all of the asm-specific versions, by not declaring __clk_get and
> __clk_put if CONFIG_COMMON_CLK is set. If no one objects to this patch
> then I will move it to the front of the patch stack when rebasing
> Tomeu's series.
>
> [0] http://lkml.kernel.org/r/<1409758148-20104-1-git-send-email-tomeu.vizoso@collabora.com>
> [1] http://lkml.kernel.org/r/<1409758317-20564-1-git-send-email-tomeu.vizoso@collabora.com>
>
> Mike Turquette (2):
>   acpi: lpss: convert from struct clk to struct clk_core
>   asm-generic: COMMON_CLK defines __clk_{get,put}
>
>  drivers/acpi/acpi_lpss.c               | 6 +++---
>  include/asm-generic/clkdev.h           | 2 ++
>  include/linux/platform_data/clk-lpss.h | 2 +-
>  3 files changed, 6 insertions(+), 4 deletions(-)
>
> --
> 1.8.3.2
>
> --
> 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/

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

* Re: [PATCH 1/2] acpi: lpss: convert from struct clk to struct clk_core
  2014-09-09 13:52     ` Mika Westerberg
@ 2014-09-10  5:30       ` Heikki Krogerus
  0 siblings, 0 replies; 7+ messages in thread
From: Heikki Krogerus @ 2014-09-10  5:30 UTC (permalink / raw)
  To: Mika Westerberg
  Cc: Rafael J. Wysocki, Mike Turquette, tomeu.vizoso, linux-kernel,
	linux-arm-kernel, patches

On Tue, Sep 09, 2014 at 04:52:09PM +0300, Mika Westerberg wrote:
> On Tue, Sep 09, 2014 at 03:16:29PM +0200, Rafael J. Wysocki wrote:
> > On Monday, September 08, 2014 11:07:47 PM Mike Turquette wrote:
> > > Looks like this driver was missed during the original mass driver
> > > rework[0]. This patch converts the LPSS driver to the new clock provider
> > > data type (struct clk_core).
> > > 
> > > If there are no objections I propose to roll this patch into a rebase of
> > > that patch[0] in my tree.
> > > 
> > > [0] http://lkml.kernel.org/r/<1409758317-20564-1-git-send-email-tomeu.vizoso@collabora.com>
> > > 
> > > Signed-off-by: Mike Turquette <mturquette@linaro.org>
> > 
> > Mika, any comments here?
> 
> Adding Heikki who recently did some clock changes to acpi_lpss.c.
> 
> To me this looks fine.

Looks fine to me to.

> > > ---
> > >  drivers/acpi/acpi_lpss.c               | 6 +++---
> > >  include/linux/platform_data/clk-lpss.h | 2 +-
> > >  2 files changed, 4 insertions(+), 4 deletions(-)
> > > 
> > > diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c
> > > index 9dfec48..454179f 100644
> > > --- a/drivers/acpi/acpi_lpss.c
> > > +++ b/drivers/acpi/acpi_lpss.c
> > > @@ -57,7 +57,7 @@ ACPI_MODULE_NAME("acpi_lpss");
> > >  struct lpss_shared_clock {
> > >  	const char *name;
> > >  	unsigned long rate;
> > > -	struct clk *clk;
> > > +	struct clk_core *clk;
> > >  };
> > >  
> > >  struct lpss_private_data;
> > > @@ -83,7 +83,7 @@ static struct lpss_device_desc lpss_dma_desc = {
> > >  struct lpss_private_data {
> > >  	void __iomem *mmio_base;
> > >  	resource_size_t mmio_size;
> > > -	struct clk *clk;
> > > +	struct clk_core *clk;
> > >  	const struct lpss_device_desc *dev_desc;
> > >  	u32 prv_reg_ctx[LPSS_PRV_REG_COUNT];
> > >  };
> > > @@ -278,7 +278,7 @@ static int register_device_clock(struct acpi_device *adev,
> > >  	const struct lpss_device_desc *dev_desc = pdata->dev_desc;
> > >  	struct lpss_shared_clock *shared_clock = dev_desc->shared_clock;
> > >  	const char *devname = dev_name(&adev->dev);
> > > -	struct clk *clk = ERR_PTR(-ENODEV);
> > > +	struct clk_core *clk = ERR_PTR(-ENODEV);
> > >  	struct lpss_clk_data *clk_data;
> > >  	const char *parent, *clk_name;
> > >  	void __iomem *prv_base;
> > > diff --git a/include/linux/platform_data/clk-lpss.h b/include/linux/platform_data/clk-lpss.h
> > > index 2390199..3c3237c 100644
> > > --- a/include/linux/platform_data/clk-lpss.h
> > > +++ b/include/linux/platform_data/clk-lpss.h
> > > @@ -15,7 +15,7 @@
> > >  
> > >  struct lpss_clk_data {
> > >  	const char *name;
> > > -	struct clk *clk;
> > > +	struct clk_core *clk;
> > >  };
> > >  
> > >  extern int lpt_clk_init(void);
> > > 
> > 
> > -- 
> > I speak only for myself.
> > Rafael J. Wysocki, Intel Open Source Technology Center.

-- 
heikki

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

end of thread, other threads:[~2014-09-10  5:31 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-09  6:07 [PATCH 0/2] fixes for struct clk_core migration Mike Turquette
2014-09-09  6:07 ` [PATCH 1/2] acpi: lpss: convert from struct clk to struct clk_core Mike Turquette
2014-09-09 13:16   ` Rafael J. Wysocki
2014-09-09 13:52     ` Mika Westerberg
2014-09-10  5:30       ` Heikki Krogerus
2014-09-09  6:11 ` [PATCH 2/2] asm-generic: COMMON_CLK defines __clk_{get,put} Mike Turquette
2014-09-09 15:21 ` [PATCH 0/2] fixes for struct clk_core migration Tomeu Vizoso

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).