Re: [PATCH] arm: at91: fix build-error for board-dt

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

On Sunday 22 April 2012, Jean-Christophe PLAGNIOL-VILLARD wrote:
> On 18:39 Sat 21 Apr     , Arnd Bergmann wrote:
> > On Saturday 21 April 2012, Jean-Christophe PLAGNIOL-VILLARD wrote:
> > > > Ok, we can discard this patch and see it as a bug report.
> > > > Since you know best what you'd like, would you send a patch?
> > > I'll fix on 3.5 by make it depends on AT91SAM9
> > 
> > I think it should be fixed for v3.4, especially since it's so easy
> > to trigger and the fix will be trivial.
> The symbol does not exist before
> and the board-dt is sam9 only

How about this patch for v3.4 then? It ensures that we don't try to build
ARCH_AT91RM9200 or ARCH_AT91X40 with MACH_AT91SAM_DT, which would be broken
in v3.4-rc4 as Wolfram pointed out.

ARM: at91: fix DT-enabled builds for non-DT chips

The ARCH_AT91RM9200 and ARCH_AT91X40 variants do not support booting with
DT yet, so we must not let the user select MACH_AT91SAM_DT in order
to avoid build errors.

It's still possible to enable USE_OF, and we should provide a few stub
functions for that case for restart and clock_init.

Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>

diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
index 45db05d..b9d9410 100644
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
@@ -457,6 +457,7 @@ endif
 # ----------------------------------------------------------
+if !ARCH_AT91RM9200 && !ARCH_AT91X40
 comment "Generic Board Type"
 config MACH_AT91SAM_DT
@@ -465,6 +466,7 @@ config MACH_AT91SAM_DT
 	  Select this if you want to experiment device-tree with
 	  an Atmel Evaluation Kit.
 # ----------------------------------------------------------
diff --git a/arch/arm/mach-at91/generic.h b/arch/arm/mach-at91/generic.h
index dd9b346..1355b44 100644
--- a/arch/arm/mach-at91/generic.h
+++ b/arch/arm/mach-at91/generic.h
@@ -55,7 +55,8 @@ extern void __init at91sam9g45_set_console_clock(int id);
 extern int __init at91_clock_init(unsigned long main_clock);
 extern int __init at91_dt_clock_init(void);
-static int inline at91_clock_init(unsigned long main_clock) { return 0; }
+static inline int at91_clock_init(unsigned long main_clock) { return 0; }
+static inline int at91_dt_clock_init(void) { return 0; }
 struct device;
@@ -68,8 +69,16 @@ extern void at91sam9_idle(void);
 /* reset */
 extern void at91_ioremap_rstc(u32 base_addr);
 extern void at91sam9_alt_restart(char, const char *);
+static inline void at91sam9_alt_restart(char c, const char *s) { }
 extern void at91sam9g45_restart(char, const char *);
+static inline void at91sam9g45_restart(char c, const char *s) { }
 /* shutdown */
 extern void at91_ioremap_shdwc(u32 base_addr);

linux-arm-kernel mailing list

[Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [PDAs]     [Linux]     [Linux MIPS]     [Yosemite Campsites]     [Photos]

Add to Google Follow linuxarm on Twitter