From mboxrd@z Thu Jan 1 00:00:00 1970 From: thomas.petazzoni@free-electrons.com (Thomas Petazzoni) Date: Tue, 7 May 2013 18:18:23 +0200 Subject: MVNETA irq with backport-3.8 In-Reply-To: <51890C29.8000504@itooo.com> References: <51890C29.8000504@itooo.com> Message-ID: <20130507181823.23342ffb@skate> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org 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 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 Tested-by: Thomas Petazzoni Tested-by: Masami Hiramatsu Signed-off-by: Jason Cooper 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. Best regards, Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com