MVNETA irq with backport-3.8
thomas.petazzoni at free-electrons.com
Tue May 7 12:18:23 EDT 2013
On Tue, 07 May 2013 16:14:01 +0200, Greg wrote:
> I'm trying to boot off the the backport-3.-8 kernel with armada-xp-db DT
> When eth0 is brought up (I'm booting on NFS) the mvneta driver fails in
> mvneta_open, with the following error :
> > mvneta d0070000.ethernet eth0: cannot request irq 25
> The oddness is this is not the actual IRQ to be requested, and the DTS
> files explicitly specify the IRQ is 8 for this device.
> I'm not familiar with the DT system, where should I start looking to
> find the source of the problem ?
This issue should be fixed by:
Author: Gregory CLEMENT <gregory.clement at free-electrons.com>
Date: Wed Mar 20 16:09:35 2013 +0100
arm: mvebu: Use local interrupt only for the timer 0
The commit 3a6f08a37 "arm: mvebu: Add support for local interrupt",
managed the 28th first interrupts as local interrupt to match the
hardware specification. Among these interrupts there are the Gigabits
Ethernet ones used by the mvneta driver. Unfortunately the state of
the percpu_irq API prevents the driver to use it.
Indeed the interrupts have to be freed when the .stop() function is
called. As the free_percpu_irq() function don't disable the interrupt
line, we have to do it on each CPU before calling this. The function
disable_percpu_irq() only disable the percpu on the current CPU and
there is no function which allows to disable a percpu irq on a given
CPU. Waiting for the extension of the percpu_irq API, this fix allows
to use again the mvneta driver.
Signed-off-by: Gregory CLEMENT <gregory.clement at free-electrons.com>
Tested-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Tested-by: Masami Hiramatsu <masami.hiramatsu.pt at hitachi.com>
Signed-off-by: Jason Cooper <jason at lakedaemon.net>
which is part of the backport-3.8 branch, so I'm a bit confused. Are
you sure you're using the latest backport-3.8 branch? If so, then I'll
do a test here to check this.
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
More information about the linux-arm-kernel