[PATCH] arm: at91: fix build-error for board-dt
Arnd Bergmann
arnd at arndb.de
Sun Apr 22 09:39:17 EDT 2012
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.
8<----
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 at arndb.de>
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
help
Select this if you want to experiment device-tree with
an Atmel Evaluation Kit.
+endif
# ----------------------------------------------------------
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);
#else
-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; }
#endif
struct device;
@@ -68,8 +69,16 @@ extern void at91sam9_idle(void);
/* reset */
extern void at91_ioremap_rstc(u32 base_addr);
+#ifdef CONFIG_AT91_SAM9_ALT_RESET
extern void at91sam9_alt_restart(char, const char *);
+#else
+static inline void at91sam9_alt_restart(char c, const char *s) { }
+#endif
+#ifdef CONFIG_AT91_SAM9G45_RESET
extern void at91sam9g45_restart(char, const char *);
+#else
+static inline void at91sam9g45_restart(char c, const char *s) { }
+#endif
/* shutdown */
extern void at91_ioremap_shdwc(u32 base_addr);
More information about the linux-arm-kernel
mailing list