[PATCH] ARM: Kirkwood: fix kirkwood_pm_init() declaration/type

Arnd Bergmann arnd at arndb.de
Fri Jun 17 14:04:04 PDT 2016

On Thursday, June 9, 2016 12:57:12 PM CEST Ben Dooks wrote:
> The kirkwood-pm.c was missing the include of kirkwood-pm.h to
> define the kirkwood_pm_init() function. However once this is
> included, the types do not match.
> Fixup the include, and then the prototype to avoid the following
> warning:
> arch/arm/mach-mvebu/kirkwood-pm.c:69:12: warning: symbol 'kirkwood_pm_init' was not declared. Should it be static?
> Signed-off-by: Ben Dooks <ben.dooks at codethink.co.uk>

You found another bug, when building with CONFIG_PM:

../arch/arm/mach-mvebu/kirkwood-pm.c:70:13: error: redefinition of 'kirkwood_pm_init'
 void __init kirkwood_pm_init(void)
In file included from ../arch/arm/mach-mvebu/kirkwood-pm.c:21:0:
../arch/arm/mach-mvebu/kirkwood-pm.h:23:20: note: previous definition of 'kirkwood_pm_init' was here
 static inline void kirkwood_pm_init(void) {};

I guess we have to make the kirkwood-pm.c file conditional on CONFIG_PM too,
but I'm unsure whether we should do the same for pm.c and pm-board.c.

Would the patch below seem reasonable, or do we actually want to call
mvebu_armada_pm_init() when CONFIG_PM is disabled? Does the machine even
boot without CONFIG_PM?

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

diff --git a/arch/arm/mach-mvebu/Makefile b/arch/arm/mach-mvebu/Makefile
index 568863e1513c..6c6497e80a7b 100644
--- a/arch/arm/mach-mvebu/Makefile
+++ b/arch/arm/mach-mvebu/Makefile
@@ -6,9 +6,15 @@ CFLAGS_pmsu.o			:= -march=armv7-a
 obj-$(CONFIG_MACH_MVEBU_ANY)	 += system-controller.o mvebu-soc-id.o
 ifeq ($(CONFIG_MACH_MVEBU_V7),y)
-obj-y				 += cpu-reset.o board-v7.o coherency.o coherency_ll.o pmsu.o pmsu_ll.o pm.o pm-board.o
+obj-y				 += cpu-reset.o board-v7.o coherency.o coherency_ll.o pmsu.o pmsu_ll.o
+obj-$(CONFIG_PM)		 += pm.o pm-board.o
 obj-$(CONFIG_SMP)		 += platsmp.o headsmp.o platsmp-a9.o headsmp-a9.o
 obj-$(CONFIG_MACH_DOVE)		 += dove.o
-obj-$(CONFIG_MACH_KIRKWOOD)	 += kirkwood.o kirkwood-pm.o
+obj-y				 += kirkwood.o
+obj-$(CONFIG_PM)		 += kirkwood-pm.o

More information about the linux-arm-kernel mailing list