Patchwork 85xx: Fix PCI-E interrupt mapping for slot 0 of P2020DS

login
register
mail settings
Submitter Felix Radensky
Date May 10, 2010, 7:15 p.m.
Message ID <1273518917-10229-1-git-send-email-felix@embedded-sol.com>
Download mbox | patch
Permalink /patch/52137/
State Superseded
Delegated to: Kumar Gala
Headers show

Comments

Felix Radensky - May 10, 2010, 7:15 p.m.
Fix legacy PCI-E interrupt mapping for PCI-E slot 0 of
P2020DS evaluation board. The patch is based on P2020DS
device tree from Freescale BSP for this board.

Signed-off-by: Felix Radensky <felix@embedded-sol.com>
---
 arch/powerpc/boot/dts/p2020ds.dts |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)
Kumar Gala - May 11, 2010, 12:35 p.m.

Kumar Gala - May 11, 2010, 12:36 p.m.
On May 10, 2010, at 2:15 PM, Felix Radensky wrote:

> Fix legacy PCI-E interrupt mapping for PCI-E slot 0 of
> P2020DS evaluation board. The patch is based on P2020DS
> device tree from Freescale BSP for this board.
> 
> Signed-off-by: Felix Radensky <felix@embedded-sol.com>
> ---
> arch/powerpc/boot/dts/p2020ds.dts |    8 ++++----
> 1 files changed, 4 insertions(+), 4 deletions(-)

I don't understand why this is needed?

-k

> 
> diff --git a/arch/powerpc/boot/dts/p2020ds.dts b/arch/powerpc/boot/dts/p2020ds.dts
> index 1101914..7c5fc07 100644
> --- a/arch/powerpc/boot/dts/p2020ds.dts
> +++ b/arch/powerpc/boot/dts/p2020ds.dts
> @@ -507,10 +507,10 @@
> 		interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
> 		interrupt-map = <
> 			/* IDSEL 0x0 */
> -			0000 0x0 0x0 0x1 &mpic 0x8 0x1
> -			0000 0x0 0x0 0x2 &mpic 0x9 0x1
> -			0000 0x0 0x0 0x3 &mpic 0xa 0x1
> -			0000 0x0 0x0 0x4 &mpic 0xb 0x1
> +			0000 0x0 0x0 0x1 &mpic 0x8 0x2
> +			0000 0x0 0x0 0x2 &mpic 0x9 0x2
> +			0000 0x0 0x0 0x3 &mpic 0xa 0x2
> +			0000 0x0 0x0 0x4 &mpic 0xb 0x2
> 			>;
> 		pcie@0 {
> 			reg = <0x0 0x0 0x0 0x0 0x0>;
> -- 
> 1.5.4.3
Felix Radensky - May 11, 2010, 7:10 p.m.
Hi Kumar,

On 5/11/2010 3:36 PM, Kumar Gala wrote:
> On May 10, 2010, at 2:15 PM, Felix Radensky wrote:
>
>   
>> Fix legacy PCI-E interrupt mapping for PCI-E slot 0 of
>> P2020DS evaluation board. The patch is based on P2020DS
>> device tree from Freescale BSP for this board.
>>
>> Signed-off-by: Felix Radensky <felix@embedded-sol.com>
>> ---
>> arch/powerpc/boot/dts/p2020ds.dts |    8 ++++----
>> 1 files changed, 4 insertions(+), 4 deletions(-)
>>     
> I don't understand why this is needed?
>
> -k
>
>   

With 2.6.34-rc7 I get this nice dump when loading ath9k for PCI-E card
in slot 0:

irq 17: nobody cared (try booting with the "irqpoll" option)
Call Trace:
[ef0d59d0] [c00070b0] show_stack+0x3c/0x17c (unreliable)
[ef0d5a10] [c00740f8] __report_bad_irq+0x38/0xcc
[ef0d5a30] [c0074344] note_interrupt+0x1b8/0x228
[ef0d5a60] [c007539c] handle_fasteoi_irq+0xac/0x138
[ef0d5a80] [c0004a68] do_IRQ+0xd8/0x104
[ef0d5aa0] [c00102b0] ret_from_except+0x0/0x18
[ef0d5b60] [00029000] 0x29000
[ef0d5bb0] [c000498c] do_softirq+0x6c/0x70
[ef0d5bc0] [c0043bb4] irq_exit+0xb0/0xb4
[ef0d5bd0] [c0004a6c] do_IRQ+0xdc/0x104
[ef0d5bf0] [c00102b0] ret_from_except+0x0/0x18
[ef0d5cb0] [c00735c4] __setup_irq+0x374/0x3ac
[ef0d5ce0] [c00736d4] request_threaded_irq+0xd8/0x150
[ef0d5d10] [f11e8c34] ath_pci_probe+0x28c/0x3f8 [ath9k]
[ef0d5d90] [c0186334] local_pci_probe+0x24/0x34
[ef0d5da0] [c0186688] pci_device_probe+0x84/0xc4
[ef0d5dd0] [c01b7f84] driver_probe_device+0xa4/0x198
[ef0d5df0] [c01b8328] __driver_attach+0xa4/0xa8
[ef0d5e10] [c01b71b8] bus_for_each_dev+0x60/0x9c
[ef0d5e40] [c01b7d98] driver_attach+0x24/0x34
[ef0d5e50] [c01b7b20] bus_add_driver+0x1bc/0x280
[ef0d5e80] [c01b85b4] driver_register+0x70/0x168
[ef0d5ea0] [c01869a0] __pci_register_driver+0x5c/0xe4
[ef0d5ed0] [f11e88cc] ath_pci_init+0x28/0x38 [ath9k]
[ef0d5ee0] [f11f104c] ath9k_init+0x4c/0xb0 [ath9k]
[ef0d5ef0] [c0001cfc] do_one_initcall+0x40/0x1dc
[ef0d5f20] [c0070a7c] sys_init_module+0xf4/0x21c
[ef0d5f40] [c000fc58] ret_from_syscall+0x0/0x3c
handlers:
[<f11e16ac>] (ath_isr+0x0/0x1b4 [ath9k])
Disabling IRQ #17

The ath9k driver does not support MSI interrupts, so it has to use 
legacy ones.
If MSI interrupts are disabled in the kernel configuration I get similar 
dump
with e1000e driver.

The patch I've sent fixes the problem with legacy interrupts.

Felix.

Patch

diff --git a/arch/powerpc/boot/dts/p2020ds.dts b/arch/powerpc/boot/dts/p2020ds.dts
index 1101914..7c5fc07 100644
--- a/arch/powerpc/boot/dts/p2020ds.dts
+++ b/arch/powerpc/boot/dts/p2020ds.dts
@@ -507,10 +507,10 @@ 
 		interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
 		interrupt-map = <
 			/* IDSEL 0x0 */
-			0000 0x0 0x0 0x1 &mpic 0x8 0x1
-			0000 0x0 0x0 0x2 &mpic 0x9 0x1
-			0000 0x0 0x0 0x3 &mpic 0xa 0x1
-			0000 0x0 0x0 0x4 &mpic 0xb 0x1
+			0000 0x0 0x0 0x1 &mpic 0x8 0x2
+			0000 0x0 0x0 0x2 &mpic 0x9 0x2
+			0000 0x0 0x0 0x3 &mpic 0xa 0x2
+			0000 0x0 0x0 0x4 &mpic 0xb 0x2
 			>;
 		pcie@0 {
 			reg = <0x0 0x0 0x0 0x0 0x0>;