Re: [PATCH v2 0/3] MIPS: JZ4740: Move PWM driver to PWM framework

From: Thierry Reding
Date: Wed Sep 12 2012 - 11:02:15 EST


On Tue, Sep 11, 2012 at 07:56:29PM +0200, Lars-Peter Clausen wrote:
> On 09/10/2012 07:30 PM, Thierry Reding wrote:
> > On Mon, Sep 10, 2012 at 05:20:34PM +0200, Lars-Peter Clausen wrote:
> >> On 09/10/2012 02:05 PM, Thierry Reding wrote:
> >>> Hi,
> >>>
> >>
> >> [...]
> >
> >> Patch 1 should go through the MIPS tree, but I still can't see why the issue
> >> should occur nor does it happen for anybody else except for you. Instead of
> >> moving the content over to the public irq.h I'd rather like to see the
> >> private irq.h being renamed.
> >
> > If we can solve this some other way I'm all for it. Maybe you can share
> > the defconfig or .config that you use so I can test under the same
> > conditions.
> >
> > Thierry
>
> This is the config I'm using:
> http://projects.qi-hardware.com/index.php/p/qi-kernel/source/tree/jz-3.4/arch/mips/configs/qi_lb60_defconfig

I can still reproduce the error with that configuration. Perhaps related
to the toolchain? I use a vanilla gcc 4.7.1 cross-compiler. This is all
on top of Linux v3.6-rc2.

Here's the complete error message:

$ nice make ARCH=mips CROSS_COMPILE=/home/thierry.reding/pbs-stage1/bin/mips-linux-gnu- O=build/jz4740
Using /home/thierry.reding/src/kernel/linux-pwm.git as source for kernel
GEN /home/thierry.reding/src/kernel/linux-pwm.git/build/jz4740/Makefile
CHK include/linux/version.h
CHK include/generated/utsrelease.h
CALL /home/thierry.reding/src/kernel/linux-pwm.git/scripts/checksyscalls.sh
CHK include/generated/compile.h
CC arch/mips/jz4740/irq.o
In file included from /home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/include/asm/irq.h:18:0,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/irq.h:27,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/asm-generic/hardirq.h:12,
from /home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/include/asm/hardirq.h:16,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/hardirq.h:7,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/interrupt.h:12,
from /home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c:19:
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.h:20:39: error: 'struct irq_data' declared inside parameter list [-Werror]
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.h:20:39: error: its scope is only this definition or declaration, which is probably not what you want [-Werror]
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.h:21:38: error: 'struct irq_data' declared inside parameter list [-Werror]
In file included from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/irq.h:356:0,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/asm-generic/hardirq.h:12,
from /home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/include/asm/hardirq.h:16,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/hardirq.h:7,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/interrupt.h:12,
from /home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c:19:
/home/thierry.reding/src/kernel/linux-pwm.git/include/linux/irqdesc.h:75:33: error: 'NR_IRQS' undeclared here (not in a function)
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c: In function 'jz4740_cascade':
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c:49:39: error: 'JZ4740_IRQ_BASE' undeclared (first use in this function)
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c:49:39: note: each undeclared identifier is reported only once for each function it appears in
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c: At top level:
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c:62:6: error: conflicting types for 'jz4740_irq_suspend'
In file included from /home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/include/asm/irq.h:18:0,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/irq.h:27,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/asm-generic/hardirq.h:12,
from /home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/include/asm/hardirq.h:16,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/hardirq.h:7,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/interrupt.h:12,
from /home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c:19:
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.h:20:13: note: previous declaration of 'jz4740_irq_suspend' was here
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c:68:6: error: conflicting types for 'jz4740_irq_resume'
In file included from /home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/include/asm/irq.h:18:0,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/irq.h:27,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/asm-generic/hardirq.h:12,
from /home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/include/asm/hardirq.h:16,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/hardirq.h:7,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/interrupt.h:12,
from /home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c:19:
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.h:21:13: note: previous declaration of 'jz4740_irq_resume' was here
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c: In function 'arch_init_irq':
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c:91:41: error: 'JZ4740_IRQ_BASE' undeclared (first use in this function)
cc1: all warnings being treated as errors
make[3]: *** [arch/mips/jz4740/irq.o] Error 1
make[2]: *** [arch/mips/jz4740] Error 2
make[1]: *** [arch/mips] Error 2
make: *** [sub-make] Error 2
Using /home/thierry.reding/src/kernel/linux-pwm.git as source for kernel
GEN /home/thierry.reding/src/kernel/linux-pwm.git/build/jz4740/Makefile
CHK include/linux/version.h
CHK include/generated/utsrelease.h
CALL /home/thierry.reding/src/kernel/linux-pwm.git/scripts/checksyscalls.sh
CHK include/generated/compile.h
CC arch/mips/jz4740/irq.o
In file included from /home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/include/asm/irq.h:18:0,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/irq.h:27,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/asm-generic/hardirq.h:12,
from /home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/include/asm/hardirq.h:16,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/hardirq.h:7,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/interrupt.h:12,
from /home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c:19:
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.h:20:39: error: 'struct irq_data' declared inside parameter list [-Werror]
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.h:20:39: error: its scope is only this definition or declaration, which is probably not what you want [-Werror]
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.h:21:38: error: 'struct irq_data' declared inside parameter list [-Werror]
In file included from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/irq.h:356:0,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/asm-generic/hardirq.h:12,
from /home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/include/asm/hardirq.h:16,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/hardirq.h:7,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/interrupt.h:12,
from /home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c:19:
/home/thierry.reding/src/kernel/linux-pwm.git/include/linux/irqdesc.h:75:33: error: 'NR_IRQS' undeclared here (not in a function)
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c: In function 'jz4740_cascade':
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c:49:39: error: 'JZ4740_IRQ_BASE' undeclared (first use in this function)
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c:49:39: note: each undeclared identifier is reported only once for each function it appears in
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c: At top level:
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c:62:6: error: conflicting types for 'jz4740_irq_suspend'
In file included from /home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/include/asm/irq.h:18:0,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/irq.h:27,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/asm-generic/hardirq.h:12,
from /home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/include/asm/hardirq.h:16,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/hardirq.h:7,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/interrupt.h:12,
from /home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c:19:
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.h:20:13: note: previous declaration of 'jz4740_irq_suspend' was here
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c:68:6: error: conflicting types for 'jz4740_irq_resume'
In file included from /home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/include/asm/irq.h:18:0,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/irq.h:27,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/asm-generic/hardirq.h:12,
from /home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/include/asm/hardirq.h:16,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/hardirq.h:7,
from /home/thierry.reding/src/kernel/linux-pwm.git/include/linux/interrupt.h:12,
from /home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c:19:
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.h:21:13: note: previous declaration of 'jz4740_irq_resume' was here
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c: In function 'arch_init_irq':
/home/thierry.reding/src/kernel/linux-pwm.git/arch/mips/jz4740/irq.c:91:41: error: 'JZ4740_IRQ_BASE' undeclared (first use in this function)
cc1: all warnings being treated as errors
make[3]: *** [arch/mips/jz4740/irq.o] Error 1
make[2]: *** [arch/mips/jz4740] Error 2
make[1]: *** [arch/mips] Error 2
make: *** [sub-make] Error 2

Attachment: pgp00000.pgp
Description: PGP signature