linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] clk: Provide notifier stubs when !COMMON_CLK
@ 2016-06-28 11:25 Krzysztof Kozlowski
  2016-06-28 11:58 ` Bartlomiej Zolnierkiewicz
  2016-06-28 17:26 ` Stephen Boyd
  0 siblings, 2 replies; 5+ messages in thread
From: Krzysztof Kozlowski @ 2016-06-28 11:25 UTC (permalink / raw)
  To: Russell King, linux-clk, linux-kernel, Michael Turquette,
	Stephen Boyd, MyungJoo Ham, Kyungmin Park, linux-pm
  Cc: Krzysztof Kozlowski, Bartlomiej Zolnierkiewicz

The clk notifier symbols are hidden by COMMON_CLK.  However on some
platforms HAVE_CLK might be set while COMMON_CLK not which leads to
compile test build errors like:

$ make.cross ARCH=sh
   drivers/devfreq/tegra-devfreq.c: In function 'tegra_actmon_rate_notify_cb':
>> drivers/devfreq/tegra-devfreq.c:391:16: error: 'POST_RATE_CHANGE' undeclared (first use in this function)
     if (action != POST_RATE_CHANGE)
                   ^
   drivers/devfreq/tegra-devfreq.c: In function 'tegra_devfreq_probe':
>> drivers/devfreq/tegra-devfreq.c:654:8: error: implicit declaration of function 'clk_notifier_register' [-Werror=implicit-function-declaration]
     err = clk_notifier_register(tegra->emc_clock, &tegra->rate_change_nb);
           ^

Export the macros and data type declarations outside of COMMON_CLK ifdef
and provide stubs to fix the compile testing.

Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>

---

Reported when testing patch [1] on ARCH=sh. I don't have the sh cross
compile toolchain so I cannot verify whether this fixes reported issue.
Tested on similar configuration on MIPS (HAVE_CLK && !COMMON_CLK)

[1] http://www.gossamer-threads.com/lists/linux/kernel/2471798

Changes since v1:
1. The struct clk_notifier_data also has to be visible.
---
 include/linux/clk.h | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/include/linux/clk.h b/include/linux/clk.h
index 834179f3fa72..123c02788807 100644
--- a/include/linux/clk.h
+++ b/include/linux/clk.h
@@ -20,8 +20,6 @@ struct device;
 
 struct clk;
 
-#ifdef CONFIG_COMMON_CLK
-
 /**
  * DOC: clk notifier callback types
  *
@@ -78,6 +76,8 @@ struct clk_notifier_data {
 	unsigned long		new_rate;
 };
 
+#ifdef CONFIG_COMMON_CLK
+
 /**
  * clk_notifier_register: register a clock rate-change notifier callback
  * @clk: clock whose rate we are interested in
@@ -140,6 +140,18 @@ bool clk_is_match(const struct clk *p, const struct clk *q);
 
 #else
 
+static inline int clk_notifier_register(struct clk *clk,
+					struct notifier_block *nb)
+{
+	return -ENOTSUPP;
+}
+
+static inline int clk_notifier_unregister(struct clk *clk,
+					  struct notifier_block *nb)
+{
+	return -ENOTSUPP;
+}
+
 static inline long clk_get_accuracy(struct clk *clk)
 {
 	return -ENOTSUPP;
-- 
1.9.1

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

* Re: [PATCH v2] clk: Provide notifier stubs when !COMMON_CLK
  2016-06-28 11:25 [PATCH v2] clk: Provide notifier stubs when !COMMON_CLK Krzysztof Kozlowski
@ 2016-06-28 11:58 ` Bartlomiej Zolnierkiewicz
  2016-06-28 17:26 ` Stephen Boyd
  1 sibling, 0 replies; 5+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2016-06-28 11:58 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: Russell King, linux-clk, linux-kernel, Michael Turquette,
	Stephen Boyd, MyungJoo Ham, Kyungmin Park, linux-pm


Hi,

On Tuesday, June 28, 2016 01:25:04 PM Krzysztof Kozlowski wrote:
> The clk notifier symbols are hidden by COMMON_CLK.  However on some
> platforms HAVE_CLK might be set while COMMON_CLK not which leads to
> compile test build errors like:
> 
> $ make.cross ARCH=sh
>    drivers/devfreq/tegra-devfreq.c: In function 'tegra_actmon_rate_notify_cb':
> >> drivers/devfreq/tegra-devfreq.c:391:16: error: 'POST_RATE_CHANGE' undeclared (first use in this function)
>      if (action != POST_RATE_CHANGE)
>                    ^
>    drivers/devfreq/tegra-devfreq.c: In function 'tegra_devfreq_probe':
> >> drivers/devfreq/tegra-devfreq.c:654:8: error: implicit declaration of function 'clk_notifier_register' [-Werror=implicit-function-declaration]
>      err = clk_notifier_register(tegra->emc_clock, &tegra->rate_change_nb);
>            ^
> 
> Export the macros and data type declarations outside of COMMON_CLK ifdef
> and provide stubs to fix the compile testing.
> 
> Reported-by: kbuild test robot <lkp@intel.com>
> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> 
> ---
> 
> Reported when testing patch [1] on ARCH=sh. I don't have the sh cross
> compile toolchain so I cannot verify whether this fixes reported issue.

FWIW I've verified with sh cross-compiler.

Tested-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>

> Tested on similar configuration on MIPS (HAVE_CLK && !COMMON_CLK)
> 
> [1] http://www.gossamer-threads.com/lists/linux/kernel/2471798

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics

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

* Re: [PATCH v2] clk: Provide notifier stubs when !COMMON_CLK
  2016-06-28 11:25 [PATCH v2] clk: Provide notifier stubs when !COMMON_CLK Krzysztof Kozlowski
  2016-06-28 11:58 ` Bartlomiej Zolnierkiewicz
@ 2016-06-28 17:26 ` Stephen Boyd
  2016-06-28 19:01   ` Krzysztof Kozlowski
  1 sibling, 1 reply; 5+ messages in thread
From: Stephen Boyd @ 2016-06-28 17:26 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: Russell King, linux-clk, linux-kernel, Michael Turquette,
	MyungJoo Ham, Kyungmin Park, linux-pm, Bartlomiej Zolnierkiewicz

On 06/28, Krzysztof Kozlowski wrote:
> The clk notifier symbols are hidden by COMMON_CLK.  However on some
> platforms HAVE_CLK might be set while COMMON_CLK not which leads to
> compile test build errors like:
> 
> $ make.cross ARCH=sh
>    drivers/devfreq/tegra-devfreq.c: In function 'tegra_actmon_rate_notify_cb':
> >> drivers/devfreq/tegra-devfreq.c:391:16: error: 'POST_RATE_CHANGE' undeclared (first use in this function)
>      if (action != POST_RATE_CHANGE)
>                    ^
>    drivers/devfreq/tegra-devfreq.c: In function 'tegra_devfreq_probe':
> >> drivers/devfreq/tegra-devfreq.c:654:8: error: implicit declaration of function 'clk_notifier_register' [-Werror=implicit-function-declaration]
>      err = clk_notifier_register(tegra->emc_clock, &tegra->rate_change_nb);
>            ^
> 
> Export the macros and data type declarations outside of COMMON_CLK ifdef
> and provide stubs to fix the compile testing.
> 
> Reported-by: kbuild test robot <lkp@intel.com>
> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> 
> ---
> 

Ok. Did you want some stable branch to pull this in and base your
use case on?

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

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

* Re: [PATCH v2] clk: Provide notifier stubs when !COMMON_CLK
  2016-06-28 17:26 ` Stephen Boyd
@ 2016-06-28 19:01   ` Krzysztof Kozlowski
  2016-06-29  0:14     ` Stephen Boyd
  0 siblings, 1 reply; 5+ messages in thread
From: Krzysztof Kozlowski @ 2016-06-28 19:01 UTC (permalink / raw)
  To: Stephen Boyd
  Cc: Krzysztof Kozlowski, Russell King, linux-clk, linux-kernel,
	Michael Turquette, MyungJoo Ham, Kyungmin Park, linux-pm,
	Bartlomiej Zolnierkiewicz

On Tue, Jun 28, 2016 at 10:26:53AM -0700, Stephen Boyd wrote:
> On 06/28, Krzysztof Kozlowski wrote:
> > The clk notifier symbols are hidden by COMMON_CLK.  However on some
> > platforms HAVE_CLK might be set while COMMON_CLK not which leads to
> > compile test build errors like:
> > 
> > $ make.cross ARCH=sh
> >    drivers/devfreq/tegra-devfreq.c: In function 'tegra_actmon_rate_notify_cb':
> > >> drivers/devfreq/tegra-devfreq.c:391:16: error: 'POST_RATE_CHANGE' undeclared (first use in this function)
> >      if (action != POST_RATE_CHANGE)
> >                    ^
> >    drivers/devfreq/tegra-devfreq.c: In function 'tegra_devfreq_probe':
> > >> drivers/devfreq/tegra-devfreq.c:654:8: error: implicit declaration of function 'clk_notifier_register' [-Werror=implicit-function-declaration]
> >      err = clk_notifier_register(tegra->emc_clock, &tegra->rate_change_nb);
> >            ^
> > 
> > Export the macros and data type declarations outside of COMMON_CLK ifdef
> > and provide stubs to fix the compile testing.
> > 
> > Reported-by: kbuild test robot <lkp@intel.com>
> > Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> > 
> > ---
> > 
> 
> Ok. Did you want some stable branch to pull this in and base your
> use case on?

It is only one patch but indeed without the branch my patches would have
to wait for next release. If you would be so kind, could you prepare
the stable branch? I hope MyungJoo Ham will use it.

Anyway I encountered more linkage errors for clk API (like clk_get_rate()).
They happen for various compile-tested drivers in case of MIPS (and
maybe others like SH). I will investigate it more but I think it is not
related strictly to this issue.

Best regards,
Krzysztof

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

* Re: [PATCH v2] clk: Provide notifier stubs when !COMMON_CLK
  2016-06-28 19:01   ` Krzysztof Kozlowski
@ 2016-06-29  0:14     ` Stephen Boyd
  0 siblings, 0 replies; 5+ messages in thread
From: Stephen Boyd @ 2016-06-29  0:14 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: Russell King, linux-clk, linux-kernel, Michael Turquette,
	MyungJoo Ham, Kyungmin Park, linux-pm, Bartlomiej Zolnierkiewicz

On 06/28, Krzysztof Kozlowski wrote:
> On Tue, Jun 28, 2016 at 10:26:53AM -0700, Stephen Boyd wrote:
> > On 06/28, Krzysztof Kozlowski wrote:
> > > The clk notifier symbols are hidden by COMMON_CLK.  However on some
> > > platforms HAVE_CLK might be set while COMMON_CLK not which leads to
> > > compile test build errors like:
> > > 
> > > $ make.cross ARCH=sh
> > >    drivers/devfreq/tegra-devfreq.c: In function 'tegra_actmon_rate_notify_cb':
> > > >> drivers/devfreq/tegra-devfreq.c:391:16: error: 'POST_RATE_CHANGE' undeclared (first use in this function)
> > >      if (action != POST_RATE_CHANGE)
> > >                    ^
> > >    drivers/devfreq/tegra-devfreq.c: In function 'tegra_devfreq_probe':
> > > >> drivers/devfreq/tegra-devfreq.c:654:8: error: implicit declaration of function 'clk_notifier_register' [-Werror=implicit-function-declaration]
> > >      err = clk_notifier_register(tegra->emc_clock, &tegra->rate_change_nb);
> > >            ^
> > > 
> > > Export the macros and data type declarations outside of COMMON_CLK ifdef
> > > and provide stubs to fix the compile testing.
> > > 
> > > Reported-by: kbuild test robot <lkp@intel.com>
> > > Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> > > 
> > > ---
> > > 
> > 
> > Ok. Did you want some stable branch to pull this in and base your
> > use case on?
> 
> It is only one patch but indeed without the branch my patches would have
> to wait for next release. If you would be so kind, could you prepare
> the stable branch? I hope MyungJoo Ham will use it.
> 
> Anyway I encountered more linkage errors for clk API (like clk_get_rate()).
> They happen for various compile-tested drivers in case of MIPS (and
> maybe others like SH). I will investigate it more but I think it is not
> related strictly to this issue.

Sure. That's probably because some clk APIs are optional and not
implemented, leading to link errors.

I've applied this patch to a branch called clk-notify and merged
it into clk-next.

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

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

end of thread, other threads:[~2016-06-29  0:14 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-28 11:25 [PATCH v2] clk: Provide notifier stubs when !COMMON_CLK Krzysztof Kozlowski
2016-06-28 11:58 ` Bartlomiej Zolnierkiewicz
2016-06-28 17:26 ` Stephen Boyd
2016-06-28 19:01   ` Krzysztof Kozlowski
2016-06-29  0:14     ` Stephen Boyd

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