All of lore.kernel.org
 help / color / mirror / Atom feed
* [Xenomai-help] BF537-Stamp pushbutton interrupts
@ 2008-02-24 13:09 Andras Garzo
  2008-02-24 15:11 ` Philippe Gerum
  2008-02-24 17:33 ` Wolfgang Grandegger
  0 siblings, 2 replies; 4+ messages in thread
From: Andras Garzo @ 2008-02-24 13:09 UTC (permalink / raw)
  To: xenomai-help

Hi all,

I'm trying to handle the BF537-STAMP pushbutton interrupts with rtdm, but
my system hangs when calling rtdm_irq_request with the following message:

BUG: failure at arch/blackfin/kernel/bfin_gpio.c:504/set_gpio_maska()!
Kernel panic - not syncing: BUG!

I'm using linux kernel 2.6.22 and Xenomai 2.4.1. It could be a kernel bug?
The following code worked well on 2.6.19 with Xenomai 2.3.2:

#include <linux/list.h>
#include <linux/init.h>
#include <linux/types.h>
#include <linux/interrupt.h>
#include <linux/module.h>
#include <linux/fs.h>
#include <linux/kernel.h>
#include <linux/time.h>
#include <asm/irq.h>
#include <rtdm/rtdm.h>
#include <rtdm/rtdm_driver.h>

#define PPSMOD_IRQ IRQ_PF4


struct ppsmod_dev
{
    unsigned int irqnum;
};

rtdm_irq_t irq_handle;

static int ppsmod_irqhandler(rtdm_irq_t *handle)
{
    printk(KERN_WARNING "ppsmod: PPS interrupt triggered.\n");
    return IRQ_HANDLED;
}

static int __init ppsmod_init(void)
{
    int alloc_size = sizeof(struct ppsmod_dev);
    struct ppsmod_dev *dev = (struct ppsmod_dev*)kmalloc(alloc_size, 
GFP_KERNEL);
    int ret;
   
    printk(KERN_WARNING "ppsmod: module loaded.\n");
   
    // installing IRQ handler
    if(rtdm_irq_request(&irq_handle, PPSMOD_IRQ, &ppsmod_irqhandler, 
RTDM_IRQTYPE_EDGE, NULL, dev))
    {
        printk(KERN_WARNING "ppsmod: PF4 irq is not free.\n");
        return -EBUSY;
    }
    printk(KERN_WARNING "ppsmod: 23231\n");
    set_irq_type(IRQ_PF4, IRQF_TRIGGER_RISING);
    rtdm_irq_enable(&irq_handle);
    printk(KERN_WARNING "ppsmod: PF4 interrupt handler installed.\n");
   

    return 0;
}

void __exit ppsmod_exit(void)
{
    rtdm_irq_free(&irq_handle);
    printk(KERN_WARNING "ppsmod: module unloaded.\n");
}

module_init(ppsmod_init);
module_exit(ppsmod_exit);

Thanks,
Andras




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Xenomai-help] BF537-Stamp pushbutton interrupts
  2008-02-24 13:09 [Xenomai-help] BF537-Stamp pushbutton interrupts Andras Garzo
@ 2008-02-24 15:11 ` Philippe Gerum
  2008-02-24 17:33 ` Wolfgang Grandegger
  1 sibling, 0 replies; 4+ messages in thread
From: Philippe Gerum @ 2008-02-24 15:11 UTC (permalink / raw)
  To: Andras Garzo; +Cc: xenomai-help

Andras Garzo wrote:
> Hi all,
> 
> I'm trying to handle the BF537-STAMP pushbutton interrupts with rtdm, but
> my system hangs when calling rtdm_irq_request with the following message:
> 
> BUG: failure at arch/blackfin/kernel/bfin_gpio.c:504/set_gpio_maska()!
> Kernel panic - not syncing: BUG!
> 
> I'm using linux kernel 2.6.22 and Xenomai 2.4.1. It could be a kernel bug?
> The following code worked well on 2.6.19 with Xenomai 2.3.2:
> 
> #include <linux/list.h>
> #include <linux/init.h>
> #include <linux/types.h>
> #include <linux/interrupt.h>
> #include <linux/module.h>
> #include <linux/fs.h>
> #include <linux/kernel.h>
> #include <linux/time.h>
> #include <asm/irq.h>
> #include <rtdm/rtdm.h>
> #include <rtdm/rtdm_driver.h>
> 
> #define PPSMOD_IRQ IRQ_PF4
> 
> 
> struct ppsmod_dev
> {
>     unsigned int irqnum;
> };
> 
> rtdm_irq_t irq_handle;
> 
> static int ppsmod_irqhandler(rtdm_irq_t *handle)
> {
>     printk(KERN_WARNING "ppsmod: PPS interrupt triggered.\n");
>     return IRQ_HANDLED;
> }
> 
> static int __init ppsmod_init(void)
> {
>     int alloc_size = sizeof(struct ppsmod_dev);
>     struct ppsmod_dev *dev = (struct ppsmod_dev*)kmalloc(alloc_size, 
> GFP_KERNEL);
>     int ret;
>    
>     printk(KERN_WARNING "ppsmod: module loaded.\n");
>    
>     // installing IRQ handler
>     if(rtdm_irq_request(&irq_handle, PPSMOD_IRQ, &ppsmod_irqhandler, 
> RTDM_IRQTYPE_EDGE, NULL, dev))
>     {
>         printk(KERN_WARNING "ppsmod: PF4 irq is not free.\n");
>         return -EBUSY;
>     }
>     printk(KERN_WARNING "ppsmod: 23231\n");
>     set_irq_type(IRQ_PF4, IRQF_TRIGGER_RISING);

Try setting the irq type before calling rtdm_irq_request().

>     rtdm_irq_enable(&irq_handle);
>     printk(KERN_WARNING "ppsmod: PF4 interrupt handler installed.\n");
>    
> 
>     return 0;
> }
> 
> void __exit ppsmod_exit(void)
> {
>     rtdm_irq_free(&irq_handle);
>     printk(KERN_WARNING "ppsmod: module unloaded.\n");
> }
> 
> module_init(ppsmod_init);
> module_exit(ppsmod_exit);
> 
> Thanks,
> Andras
> 
> 
> 
> _______________________________________________
> Xenomai-help mailing list
> Xenomai-help@domain.hid
> https://mail.gna.org/listinfo/xenomai-help
> 


-- 
Philippe.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Xenomai-help] BF537-Stamp pushbutton interrupts
  2008-02-24 13:09 [Xenomai-help] BF537-Stamp pushbutton interrupts Andras Garzo
  2008-02-24 15:11 ` Philippe Gerum
@ 2008-02-24 17:33 ` Wolfgang Grandegger
  2008-02-25 20:17   ` Andras Garzo
  1 sibling, 1 reply; 4+ messages in thread
From: Wolfgang Grandegger @ 2008-02-24 17:33 UTC (permalink / raw)
  To: Andras Garzo; +Cc: xenomai-help

Andras Garzo wrote:
> Hi all,
> 
> I'm trying to handle the BF537-STAMP pushbutton interrupts with rtdm, but
> my system hangs when calling rtdm_irq_request with the following message:
> 
> BUG: failure at arch/blackfin/kernel/bfin_gpio.c:504/set_gpio_maska()!
> Kernel panic - not syncing: BUG!
> 
> I'm using linux kernel 2.6.22 and Xenomai 2.4.1. It could be a kernel bug?
> The following code worked well on 2.6.19 with Xenomai 2.3.2:
> 
> #include <linux/list.h>
> #include <linux/init.h>
> #include <linux/types.h>
> #include <linux/interrupt.h>
> #include <linux/module.h>
> #include <linux/fs.h>
> #include <linux/kernel.h>
> #include <linux/time.h>
> #include <asm/irq.h>
> #include <rtdm/rtdm.h>
> #include <rtdm/rtdm_driver.h>
> 
> #define PPSMOD_IRQ IRQ_PF4
> 
> 
> struct ppsmod_dev
> {
>     unsigned int irqnum;
> };
> 
> rtdm_irq_t irq_handle;
> 
> static int ppsmod_irqhandler(rtdm_irq_t *handle)
> {
>     printk(KERN_WARNING "ppsmod: PPS interrupt triggered.\n");
>     return IRQ_HANDLED;
> }
> 
> static int __init ppsmod_init(void)
> {
>     int alloc_size = sizeof(struct ppsmod_dev);
>     struct ppsmod_dev *dev = (struct ppsmod_dev*)kmalloc(alloc_size, 
> GFP_KERNEL);
>     int ret;
>    
>     printk(KERN_WARNING "ppsmod: module loaded.\n");
>    
>     // installing IRQ handler
>     if(rtdm_irq_request(&irq_handle, PPSMOD_IRQ, &ppsmod_irqhandler, 
> RTDM_IRQTYPE_EDGE, NULL, dev))
>     {
>         printk(KERN_WARNING "ppsmod: PF4 irq is not free.\n");
>         return -EBUSY;
>     }
>     printk(KERN_WARNING "ppsmod: 23231\n");
>     set_irq_type(IRQ_PF4, IRQF_TRIGGER_RISING);
>     rtdm_irq_enable(&irq_handle);

Be aware, that starting with Xenomai v2.4, the interrupt is
automatically enabled by rtdm_irq_request().

Wolfgang.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Xenomai-help] BF537-Stamp pushbutton interrupts
  2008-02-24 17:33 ` Wolfgang Grandegger
@ 2008-02-25 20:17   ` Andras Garzo
  0 siblings, 0 replies; 4+ messages in thread
From: Andras Garzo @ 2008-02-25 20:17 UTC (permalink / raw)
  To: xenomai-help

Thanks for help, now it's working...

Andras

Wolfgang Grandegger wrote:
> Andras Garzo wrote:
>   
>> Hi all,
>>
>> I'm trying to handle the BF537-STAMP pushbutton interrupts with rtdm, but
>> my system hangs when calling rtdm_irq_request with the following message:
>>
>> BUG: failure at arch/blackfin/kernel/bfin_gpio.c:504/set_gpio_maska()!
>> Kernel panic - not syncing: BUG!
>>
>> I'm using linux kernel 2.6.22 and Xenomai 2.4.1. It could be a kernel bug?
>> The following code worked well on 2.6.19 with Xenomai 2.3.2:
>>
>> #include <linux/list.h>
>> #include <linux/init.h>
>> #include <linux/types.h>
>> #include <linux/interrupt.h>
>> #include <linux/module.h>
>> #include <linux/fs.h>
>> #include <linux/kernel.h>
>> #include <linux/time.h>
>> #include <asm/irq.h>
>> #include <rtdm/rtdm.h>
>> #include <rtdm/rtdm_driver.h>
>>
>> #define PPSMOD_IRQ IRQ_PF4
>>
>>
>> struct ppsmod_dev
>> {
>>     unsigned int irqnum;
>> };
>>
>> rtdm_irq_t irq_handle;
>>
>> static int ppsmod_irqhandler(rtdm_irq_t *handle)
>> {
>>     printk(KERN_WARNING "ppsmod: PPS interrupt triggered.\n");
>>     return IRQ_HANDLED;
>> }
>>
>> static int __init ppsmod_init(void)
>> {
>>     int alloc_size = sizeof(struct ppsmod_dev);
>>     struct ppsmod_dev *dev = (struct ppsmod_dev*)kmalloc(alloc_size, 
>> GFP_KERNEL);
>>     int ret;
>>    
>>     printk(KERN_WARNING "ppsmod: module loaded.\n");
>>    
>>     // installing IRQ handler
>>     if(rtdm_irq_request(&irq_handle, PPSMOD_IRQ, &ppsmod_irqhandler, 
>> RTDM_IRQTYPE_EDGE, NULL, dev))
>>     {
>>         printk(KERN_WARNING "ppsmod: PF4 irq is not free.\n");
>>         return -EBUSY;
>>     }
>>     printk(KERN_WARNING "ppsmod: 23231\n");
>>     set_irq_type(IRQ_PF4, IRQF_TRIGGER_RISING);
>>     rtdm_irq_enable(&irq_handle);
>>     
>
> Be aware, that starting with Xenomai v2.4, the interrupt is
> automatically enabled by rtdm_irq_request().
>
> Wolfgang.
>   



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2008-02-25 20:17 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-24 13:09 [Xenomai-help] BF537-Stamp pushbutton interrupts Andras Garzo
2008-02-24 15:11 ` Philippe Gerum
2008-02-24 17:33 ` Wolfgang Grandegger
2008-02-25 20:17   ` Andras Garzo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.