From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <47C1AA67.4030900@domain.hid> Date: Sun, 24 Feb 2008 18:33:27 +0100 From: Wolfgang Grandegger MIME-Version: 1.0 References: <47C16C8E.8020700@domain.hid> In-Reply-To: <47C16C8E.8020700@domain.hid> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [Xenomai-help] BF537-Stamp pushbutton interrupts List-Id: Help regarding installation and common use of Xenomai List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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 > #include > #include > #include > #include > #include > #include > #include > #include > #include > #include > > #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.