From: Kukjin Kim <kgene.kim@samsung.com>
To: "'Denis Kuzmenko'" <linux@solonet.org.ua>,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-samsung-soc@vger.kernel.org,
"'Russell King'" <linux@arm.linux.org.uk>,
"'Ben Dooks'" <ben-linux@fluff.org>
Subject: RE: [PATCHv2 resend] Fix compilation error when CONFIG_CPU_FREQ_S3C24XX_DEBUGFS selected.
Date: Wed, 28 Dec 2011 16:59:40 +0900 [thread overview]
Message-ID: <01e501ccc536$a6e58fb0$f4b0af10$%kim@samsung.com> (raw)
In-Reply-To: <4EE7BE5F.8020108@solonet.org.ua>
Denis Kuzmenko wrote:
>
> Fix compilation error when CONFIG_CPU_FREQ_S3C24XX_DEBUGFS selected.
>
> Signed-off-by: Denis Kuzmenko <linux@solonet.org.ua>
> ---
>
> Patch is against 3.2-rc4.
> CONFIG_S3C2410_IOTIMING is not selected for MACH_MINI2440. Because of this
> the
> file s3c2410-iotiming.c is not ever compiled and enabling
> CONFIG_CPU_FREQ_S3C24XX_DEBUGFS option caused undefined reference to
> function
> s3c2410_iotiming_debugfs defined in that file. s3c2410_iotiming_debugfs
> defined
> as NULL for this case.
>
> Changelog:
> v1 -> v2
> New CONFIG_ symbols S3C241{0,2}_IOTIMING were removed as It was observed
> that
> they already present but hidden from user.
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index e084b7e..133d005 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -2118,7 +2118,7 @@ config CPU_FREQ_S3C24XX_DEBUG
>
> config CPU_FREQ_S3C24XX_IODEBUG
> bool "Debug CPUfreq Samsung driver IO timing"
> - depends on CPU_FREQ_S3C24XX
> + depends on CPU_FREQ_S3C24XX && (S3C2410_IOTIMING ||
> S3C2412_IOTIMING)
As you know, CONFIG_CPU_FREQ_S3C24XX_IODEBUG is for enabling of
s3c_freq_iodbg() and there is no problem when CONFIG_S3C241{0,2}_IOTIMING is
not selected, even though s3c_freq_iodbg() is used only at
s3c2410-iotiming.c now. So this is not necessary to fix the problem you
said.
> help
> Enable s3c_freq_iodbg for the Samsung S3C CPUfreq core
>
> diff --git a/arch/arm/plat-samsung/include/plat/cpu-freq-core.h
> b/arch/arm/plat-samsung/include/plat/cpu-freq-core.h
> index dac4760..c465252 100644
> --- a/arch/arm/plat-samsung/include/plat/cpu-freq-core.h
> +++ b/arch/arm/plat-samsung/include/plat/cpu-freq-core.h
> @@ -202,13 +202,23 @@ extern int s3c_plltab_register(struct
> cpufreq_frequency_table *plls,
> extern struct s3c_cpufreq_config *s3c_cpufreq_getconfig(void);
> extern struct s3c_iotimings *s3c_cpufreq_getiotimings(void);
>
> -extern void s3c2410_iotiming_debugfs(struct seq_file *seq,
> - struct s3c_cpufreq_config *cfg,
> - union s3c_iobank *iob);
> -
> -extern void s3c2412_iotiming_debugfs(struct seq_file *seq,
> - struct s3c_cpufreq_config *cfg,
> - union s3c_iobank *iob);
> +#ifdef CONFIG_CPU_FREQ_S3C24XX_DEBUGFS
> + #ifdef CONFIG_S3C2410_IOTIMING
> + extern void s3c2410_iotiming_debugfs(struct seq_file *seq,
> + struct s3c_cpufreq_config *cfg,
> + union s3c_iobank *iob);
> + #else
> + #define s3c2410_iotiming_debugfs NULL
> + #endif
> +
> + #ifdef CONFIG_S3C2412_IOTIMING
> + extern void s3c2412_iotiming_debugfs(struct seq_file *seq,
> + struct s3c_cpufreq_config *cfg,
> + union s3c_iobank *iob);
> + #else
> + #define s3c2412_iotiming_debugfs NULL
> + #endif
> +#endif
Well, do we really need to have '#ifdef CONFIG_CPU_FREQ_S3C24XX_DEBUGFS'
here?
I think, just having dependency with CONFIG_S3C241{1,2}_IOTIMING can avoid
the build error.
>
> #ifdef CONFIG_CPU_FREQ_S3C24XX_DEBUGFS
> #define s3c_cpufreq_debugfs_call(x) x
> @@ -241,10 +251,7 @@ extern void s3c2410_iotiming_set(struct
> s3c_cpufreq_config *cfg,
> #endif /* CONFIG_S3C2410_IOTIMING */
>
> /* S3C2412 compatible routines */
> -
> -extern int s3c2412_iotiming_get(struct s3c_cpufreq_config *cfg,
> - struct s3c_iotimings *timings);
> -
Yes, why is this duplicated :(
> +#ifdef CONFIG_S3C2412_IOTIMING
> extern int s3c2412_iotiming_get(struct s3c_cpufreq_config *cfg,
> struct s3c_iotimings *timings);
>
> @@ -253,6 +260,11 @@ extern int s3c2412_iotiming_calc(struct
> s3c_cpufreq_config *cfg,
>
> extern void s3c2412_iotiming_set(struct s3c_cpufreq_config *cfg,
> struct s3c_iotimings *iot);
> +#else
> +#define s3c2412_iotiming_calc NULL
> +#define s3c2412_iotiming_get NULL
> +#define s3c2412_iotiming_set NULL
> +#endif
>
> #ifdef CONFIG_CPU_FREQ_S3C24XX_DEBUG
> #define s3c_freq_dbg(x...) printk(KERN_INFO x)
So how about at below?
If you're ok, will send before v3.2.
---
>From 41bb50bd22cdc6d3aa7fb75efab78d341f932ae5 Mon Sep 17 00:00:00 2001
From: Denis Kuzmenko <linux@solonet.org.ua>
Date: Wed, 28 Dec 2011 14:04:51 +0900
Subject: [PATCH] ARM: SAMSUNG: Fix build error when selecting
CPU_FREQ_S3C24XX_DEBUGFS on S3C2440
Following is happened when CONFIG_CPU_FREQ_S3C24XX_DEBUGFS
is selected without building of s3c2410-iotiming.c file:
arch/arm/mach-s3c2440/built-in.o:(.data+0x38c): undefined reference to
`s3c2410_iotiming_debugfs
Basically, the CONFIG_S3C2410_IOTIMING is not selected for
MACH_MINI2440. Because the s3c2410-iotiming.c is not ever
compiled and enabling CONFIG_CPU_FREQ_S3C24XX_DEBUGFS option
caused undefined reference to s3c2410_iotiming_debugfs()
defined in that file. The s3c2410_iotiming_debugfs defined
as NULL for this case.
Signed-off-by: Denis Kuzmenko <linux@solonet.org.ua>
[kgene.kim@samsung.com: removed useless changes]
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
---
arch/arm/plat-samsung/include/plat/cpu-freq-core.h | 25
++++++++++++--------
1 files changed, 15 insertions(+), 10 deletions(-)
diff --git a/arch/arm/plat-samsung/include/plat/cpu-freq-core.h
b/arch/arm/plat-samsung/include/plat/cpu-freq-core.h
index dac4760..95509d8 100644
--- a/arch/arm/plat-samsung/include/plat/cpu-freq-core.h
+++ b/arch/arm/plat-samsung/include/plat/cpu-freq-core.h
@@ -202,14 +202,6 @@ extern int s3c_plltab_register(struct
cpufreq_frequency_table *plls,
extern struct s3c_cpufreq_config *s3c_cpufreq_getconfig(void);
extern struct s3c_iotimings *s3c_cpufreq_getiotimings(void);
-extern void s3c2410_iotiming_debugfs(struct seq_file *seq,
- struct s3c_cpufreq_config *cfg,
- union s3c_iobank *iob);
-
-extern void s3c2412_iotiming_debugfs(struct seq_file *seq,
- struct s3c_cpufreq_config *cfg,
- union s3c_iobank *iob);
-
#ifdef CONFIG_CPU_FREQ_S3C24XX_DEBUGFS
#define s3c_cpufreq_debugfs_call(x) x
#else
@@ -226,6 +218,10 @@ extern void s3c2410_cpufreq_setrefresh(struct
s3c_cpufreq_config *cfg);
extern void s3c2410_set_fvco(struct s3c_cpufreq_config *cfg);
#ifdef CONFIG_S3C2410_IOTIMING
+extern void s3c2410_iotiming_debugfs(struct seq_file *seq,
+ struct s3c_cpufreq_config *cfg,
+ union s3c_iobank *iob);
+
extern int s3c2410_iotiming_calc(struct s3c_cpufreq_config *cfg,
struct s3c_iotimings *iot);
@@ -235,6 +231,7 @@ extern int s3c2410_iotiming_get(struct
s3c_cpufreq_config *cfg,
extern void s3c2410_iotiming_set(struct s3c_cpufreq_config *cfg,
struct s3c_iotimings *iot);
#else
+#define s3c2410_iotiming_debugfs NULL
#define s3c2410_iotiming_calc NULL
#define s3c2410_iotiming_get NULL
#define s3c2410_iotiming_set NULL
@@ -242,8 +239,10 @@ extern void s3c2410_iotiming_set(struct
s3c_cpufreq_config *cfg,
/* S3C2412 compatible routines */
-extern int s3c2412_iotiming_get(struct s3c_cpufreq_config *cfg,
- struct s3c_iotimings *timings);
+#ifdef CONFIG_S3C2412_IOTIMING
+extern void s3c2412_iotiming_debugfs(struct seq_file *seq,
+ struct s3c_cpufreq_config *cfg,
+ union s3c_iobank *iob);
extern int s3c2412_iotiming_get(struct s3c_cpufreq_config *cfg,
struct s3c_iotimings *timings);
@@ -253,6 +252,12 @@ extern int s3c2412_iotiming_calc(struct
s3c_cpufreq_config *cfg,
extern void s3c2412_iotiming_set(struct s3c_cpufreq_config *cfg,
struct s3c_iotimings *iot);
+#else
+#define s3c2412_iotiming_debugfs NULL
+#define s3c2412_iotiming_calc NULL
+#define s3c2412_iotiming_get NULL
+#define s3c2412_iotiming_set NULL
+#endif /* CONFIG_S3C2412_IOTIMING */
#ifdef CONFIG_CPU_FREQ_S3C24XX_DEBUG
#define s3c_freq_dbg(x...) printk(KERN_INFO x)
--
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <kgene.kim@samsung.com>, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
next prev parent reply other threads:[~2011-12-28 7:59 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-13 21:06 Denis Kuzmenko
2011-12-21 7:04 ` Kukjin Kim
2011-12-21 19:49 ` Denis Kuzmenko
2011-12-21 22:04 ` Kukjin Kim
2011-12-22 0:40 ` Denis Kuzmenko
2011-12-22 1:44 ` Kukjin Kim
2011-12-28 7:59 ` Kukjin Kim [this message]
2011-12-28 21:02 ` Denis Kuzmenko
2011-12-29 3:44 ` Kukjin Kim
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='01e501ccc536$a6e58fb0$f4b0af10$%kim@samsung.com' \
--to=kgene.kim@samsung.com \
--cc=ben-linux@fluff.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=linux@solonet.org.ua \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®