Subject: Re: EXT_IRQ0 @ MPC834x

From: André Schwarz <[email-masked]>
Date: Wed, 30 Apr 2008 15:09:07 +0200

Issue solved !

IRQ has been requested with IRQF_SHARED.
Obviously this is not neccessary and caused this bogus behaviour.

Don't know if it's a bug or a feature.

Cheers,
André

Andre Schwarz schrieb:
> All,
> 
> actually I'm having trouble getting the IRQ0 work on a MPC8343 with
> 2.6.25-rc8.
> There's an external PCI device connected to it ....
> 
> 
> Regarding to the manual IRQ0 is somewhat special and has Vector 48 assigned.
> 
> Therefore my dts entry for this device looks like :
> 
> interrupt-map = <0x5800 0 0 1 &ipic 0x30 0x8
>                                  ... >;
> 
> Having a look on virq mapping gives :
> 
> mvBL-M7> cat /sys/kernel/debug/powerpc/virq_mapping
> virq   hwirq    chip name        host name
>    16  0x0000e   IPIC            /soc@e0000000/pic@700
>    17  0x0000f   IPIC            /soc@e0000000/pic@700
>    18  0x00009   IPIC            /soc@e0000000/pic@700
>    20  0x00010   IPIC            /soc@e0000000/pic@700
>    32  0x00020   IPIC            /soc@e0000000/pic@700
>    33  0x00021   IPIC            /soc@e0000000/pic@700
>    34  0x00022   IPIC            /soc@e0000000/pic@700
>    38  0x00026   IPIC            /soc@e0000000/pic@700
>    48  0x00030   IPIC            /soc@e0000000/pic@700
> 
> 
> After loading the device driver (=mvbcdma) the irq shows up correctly.
> 
> mvBL-M7> cat /proc/interrupts
>            CPU0
>  16:        603   IPIC   Level     i2c-mpc
>  17:          8   IPIC   Level     i2c-mpc
>  18:        295   IPIC   Level     serial
>  20:        341   IPIC   Level     mpc83xx_spi
>  32:          2   IPIC   Level     enet_tx
>  33:          3   IPIC   Level     enet_rx
>  34:          0   IPIC   Level     enet_error
>  38:          0   IPIC   Level     ehci_hcd:usb1
>  48:          0   IPIC   Level     mvbcdma0
> BAD:          0
> 
> 
> As soon as the device generates an interrupt I get :
> 
> irq 48: nobody cared (try booting with the "irqpoll" option)
> handlers:
> [<d18d66e8>] (mvbcdma_irq+0x0/0x180 [mvbcdma])
> Disabling IRQ #48
> 
> 
> The handler _would_ have returned IRQ_RETVAL(1).
> Obviously the handler isn't called at all - but why ?
> 
> 
> Using "nm" on the kernel module gives :
> 
> 000006e8 t mvbcdma_irq
> 
> ->offset 0x6e8 inside module matches with output regarding handler.
> 
> 
> Any help is welcome !
> 
> 
> regards,
> Andre Schwarz
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> MATRIX VISION GmbH, Talstraße 16, DE-71570 Oppenweiler  - Registergericht: Amtsgericht Stuttgart, HRB 271090
> Geschäftsführer: Gerhard Thullner, Werner Armingeon, Uwe Furtner
> _______________________________________________
> Linuxppc-dev mailing list
> [email-masked]
> https://ozlabs.org/mailman/listinfo/linuxppc-dev

MATRIX VISION GmbH, Talstraße 16, DE-71570 Oppenweiler  - Registergericht: Amtsgericht Stuttgart, HRB 271090
Geschäftsführer: Gerhard Thullner, Werner Armingeon, Uwe Furtner