MVNETA irq with backport-3.8

Greg itooo at itooo.com
Tue May 7 12:40:39 EDT 2013


Le 07/05/2013 18:18, Thomas Petazzoni a écrit :
> Dear Greg,
>
> 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
>> file.
>>
>> 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:
>
> commit 7f23f62fc31c5c97947414c0937a72e08a947a41
> 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.
>
By the way, the patch IS applied to the source tree I'm compiling.
I can see this in arch/arm/mach-mvebu/irq-armada-370-xp.c which is using 
ARMADA_370_XP_TIMER0_PER_CPU_IRQ instead of ARMADA_370_XP_MAX_PER_CPU_IRQS

Cheers,



More information about the linux-arm-kernel mailing list