diff mbox

ARM: imx: build cpu_is_imx6sl function conditionally

Message ID 4295402.oOSEcbAj2f@wuerfel
State New
Headers show

Commit Message

Arnd Bergmann July 3, 2014, 2:22 p.m. UTC
imx6q_pm_enter calls imx6sl_set_wait_clk when run on an imx6sl
based machine. However if support for imx6sl is not enabled
at compile time, this prevents us from building the kernel and
we get this link error instead:

arch/arm/mach-imx/built-in.o: In function `imx6q_pm_enter':
:(.text+0x4b84): undefined reference to `imx6sl_set_wait_clk'

This makes the cpu_is_imx6sl function conditionally return false
if imx6sl is disabled at compile-time, which matches what the
older cpu_is_mx* macros did. We have similar inline functions for
the other imx6 variants, but so far I have not run into a case
where the extra #ifdef is necessary.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Comments

Shawn Guo July 3, 2014, 2:35 p.m. UTC | #1
On Thu, Jul 03, 2014 at 04:22:54PM +0200, Arnd Bergmann wrote:
> imx6q_pm_enter calls imx6sl_set_wait_clk when run on an imx6sl
> based machine. However if support for imx6sl is not enabled
> at compile time, this prevents us from building the kernel and
> we get this link error instead:
> 
> arch/arm/mach-imx/built-in.o: In function `imx6q_pm_enter':
> :(.text+0x4b84): undefined reference to `imx6sl_set_wait_clk'
> 
> This makes the cpu_is_imx6sl function conditionally return false
> if imx6sl is disabled at compile-time, which matches what the
> older cpu_is_mx* macros did. We have similar inline functions for
> the other imx6 variants, but so far I have not run into a case
> where the extra #ifdef is necessary.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Applied, thanks.
Sergei Shtylyov July 3, 2014, 5:51 p.m. UTC | #2
Hello.

On 07/03/2014 06:22 PM, Arnd Bergmann wrote:

> imx6q_pm_enter calls imx6sl_set_wait_clk when run on an imx6sl
> based machine. However if support for imx6sl is not enabled
> at compile time, this prevents us from building the kernel and
> we get this link error instead:

> arch/arm/mach-imx/built-in.o: In function `imx6q_pm_enter':
> :(.text+0x4b84): undefined reference to `imx6sl_set_wait_clk'

> This makes the cpu_is_imx6sl function conditionally return false
> if imx6sl is disabled at compile-time, which matches what the
> older cpu_is_mx* macros did. We have similar inline functions for
> the other imx6 variants, but so far I have not run into a case
> where the extra #ifdef is necessary.

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

> diff --git a/arch/arm/mach-imx/mxc.h b/arch/arm/mach-imx/mxc.h
> index 75d6a37..b03b808 100644
> --- a/arch/arm/mach-imx/mxc.h
> +++ b/arch/arm/mach-imx/mxc.h
> @@ -156,7 +156,11 @@ extern unsigned int __mxc_cpu_type;
>   #ifndef __ASSEMBLY__
>   static inline bool cpu_is_imx6sl(void)
>   {
> +#ifdef CONFIG_SOC_IMX6SL
>   	return __mxc_cpu_type == MXC_CPU_IMX6SL;
> +#else
> +	return 0;

    s/0/false/.

> +#endif

    Also, #ifdef's in a function body are ugly.

>   }

WBR, Sergei
Shawn Guo July 4, 2014, 1:59 a.m. UTC | #3
On Thu, Jul 03, 2014 at 09:51:54PM +0400, Sergei Shtylyov wrote:
> >@@ -156,7 +156,11 @@ extern unsigned int __mxc_cpu_type;
> >  #ifndef __ASSEMBLY__
> >  static inline bool cpu_is_imx6sl(void)
> >  {
> >+#ifdef CONFIG_SOC_IMX6SL
> >  	return __mxc_cpu_type == MXC_CPU_IMX6SL;
> >+#else
> >+	return 0;
> 
>    s/0/false/.
> 
> >+#endif
> 
>    Also, #ifdef's in a function body are ugly.

Okay, I fixed it up as below.

#ifdef CONFIG_SOC_IMX6SL
static inline bool cpu_is_imx6sl(void)
{
        return __mxc_cpu_type == MXC_CPU_IMX6SL;
}
#else
static inline bool cpu_is_imx6sl(void)
{
        return false;
}
#endif

Shawn
diff mbox

Patch

diff --git a/arch/arm/mach-imx/mxc.h b/arch/arm/mach-imx/mxc.h
index 75d6a37..b03b808 100644
--- a/arch/arm/mach-imx/mxc.h
+++ b/arch/arm/mach-imx/mxc.h
@@ -156,7 +156,11 @@  extern unsigned int __mxc_cpu_type;
 #ifndef __ASSEMBLY__
 static inline bool cpu_is_imx6sl(void)
 {
+#ifdef CONFIG_SOC_IMX6SL
 	return __mxc_cpu_type == MXC_CPU_IMX6SL;
+#else
+	return 0;
+#endif
 }
 
 static inline bool cpu_is_imx6dl(void)