* [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.