Spoke too soon...after about 20 minutes, I got:

[ 1870.675437] WARNING: at kernel/softirq.c:137
__local_bh_enable+0x44/0xac()
[ 1870.682629] Modules linked in: vme_pd_drv [last unloaded: vme_pd_drv]
[ 1870.689415] [<c00566fc>] (unwind_backtrace+0x0/0xe0) from [<c007db0c>]
(warn_slowpath_common+0x4c/0x64)
[ 1870.871240] [<c007db0c>] (warn_slowpath_common+0x4c/0x64) from
[<c007db3c>] (warn_slowpath_null+0x18/0x1c)
[ 1870.881352] [<c007db3c>] (warn_slowpath_null+0x18/0x1c) from [<c0083138>]
(__local_bh_enable+0x44/0xac)
[ 1871.271582] [<c0083138>] (__local_bh_enable+0x44/0xac) from [<c008481c>]
(irq_enter+0x44/0x60)
[ 1871.280600] [<c008481c>] (irq_enter+0x44/0x60) from [<c0046018>]
(asm_do_IRQ+0x18/0x98)
[ 1871.288987] [<c0046018>] (asm_do_IRQ+0x18/0x98) from [<c00b9af0>]
(__ipipe_sync_stage+0x154/0x188)

Guess I'll turn on all the debugging and see what pops....dang..... 

-----Original Message-----
From: Philippe Gerum [mailto:[email protected]] 
Sent: Friday, January 20, 2012 2:47 PM
To: Terry Fryar
Cc: 'Gilles Chanteperdrix'; [email protected]
Subject: Re: [Xenomai-help] rtdm difficulties

On 01/20/2012 08:37 PM, Terry Fryar wrote:
> Ok, I'll try the patch.  A question though...on the beagle, there is a 
> OMAP register GPIO_IRQSTATUSx that I am not manually clearing out.  
> This is the only place to ack an irq I know of...I assumed that was 
> being handled by the kernel?  Or is this what the patch is adding??  
> I'm very new to writing irq handlers, as you can tell!
>
> Honestly, all that's in my current handler is this:
>
> int irqdrv_rtdm_isr(rtdm_irq_t* handle) {
>       return(RTDM_IRQ_HANDLED);
> }
>
> And here's the register func:
>
> if ((err = rtdm_irq_request(&irqdrv_isr_handle, irqno, 
> irqdrv_rtdm_isr, RTDM_IRQTYPE_EDGE, IRQDRV_NAME, NULL)) == 0)
>     rtdm_irq_enable(&irqdrv_isr_handle);
>
> And I'm running against a square waveform and getting this:
>
> [   56.522948] WARNING: at kernel/softirq.c:137
> __local_bh_enable+0x44/0xac()
> [   56.530153] Modules linked in: vme_pd_drv
> [   56.534399] [<c00566fc>] (unwind_backtrace+0x0/0xe0) from [<c007db0c>]
> (warn_slowpath_common+0x4c/0x64)
> [   56.574419] [<c007db0c>] (warn_slowpath_common+0x4c/0x64) from
> [<c007db3c>] (warn_slowpath_null+0x18/0x1c)
> [   56.584568] [<c007db3c>] (warn_slowpath_null+0x18/0x1c) from
[<c0083138>]
> (__local_bh_enable+0x44/0xac)
> [   56.594425] [<c0083138>] (__local_bh_enable+0x44/0xac) from
[<c008481c>]
> (irq_enter+0x44/0x60)
> [   56.623476] [<c008481c>] (irq_enter+0x44/0x60) from [<c0046018>]
> (asm_do_IRQ+0x18/0x98)
> [   56.631880] [<c0046018>] (asm_do_IRQ+0x18/0x98) from [<c00b9af0>]
> (__ipipe_sync_stage+0x154/0x188)

Make sure to have CONFIG_IPIPE_DEBUG_INTERNAL enabled in your kernel config
btw, this might help.

Gilles, I wonder whether this backtrace could not be the sign of a demux ISR
not going through ipipe_handle_chained_irq()?

>
>
>
>
> -----Original Message-----
> From: Gilles Chanteperdrix [mailto:[email protected]]
> Sent: Friday, January 20, 2012 12:32 PM
> To: Terry Fryar
> Cc: [email protected]
> Subject: Re: [Xenomai-help] rtdm difficulties
>
> On 01/20/2012 07:24 PM, Terry Fryar wrote:
>> Yeh, omap and gpio.....edge irq from a square wave pulse....
>
> Try this patch:
>
> diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c 
> index 30cb7d4..114ccf0 100644
> --- a/arch/arm/plat-omap/gpio.c
> +++ b/arch/arm/plat-omap/gpio.c
> @@ -1272,7 +1272,7 @@ static void gpio_irq_handler(unsigned int irq, 
> struct irq_desc *desc)
>       u32 retrigger = 0;
>       int unmasked = 0;
>
> -     desc->irq_data.chip->irq_ack(&desc->irq_data);
> +     desc->irq_data.chip->irq_mask_ack(&desc->irq_data);
>
>       bank = get_irq_data(irq);
>   #ifdef CONFIG_ARCH_OMAP1
>


--
Philippe.


_______________________________________________
Xenomai-help mailing list
[email protected]
https://mail.gna.org/listinfo/xenomai-help

Reply via email to