Hi, I have an ARM based platform which is similar to the at91sam9263ek eval board. One of the differences is that touchscreen irq is on pin PB31 instead of PA15. The 'arch/arm/mach-at91/board-sam9263ek.c' has been changed for this.
Touch works when using the kernel without Xenomai.
When using the same kernel with Xenomai patches, touch doesn't work. I
get only 2 interrupts on the GPIO pin (cat /proc/interrupts).
Anyone an idea why the Xenomai enabled kernel stops generating
interrupts on the GPIO pins while the non-Xenomai enabled kernel
doesn't?
I noticed the driver for the touchscreen
'drivers/input/touchscreen/ads7846.c' disables the interrupt in it's
interrupt service routine:
static irqreturn_t ads7846_irq(int irq, void *handle)
{
struct ads7846 *ts = handle;
unsigned long flags;
spin_lock_irqsave(&ts->lock, flags);
if (likely(get_pendown_state(ts))) {
if (!ts->irq_disabled) {
/* The ARM do_simple_IRQ() dispatcher doesn't act
* like the other dispatchers: it will report IRQs
* even after they've been disabled. We work around
* that here. (The "generic irq" framework may help...)
*/
ts->irq_disabled = 1;
disable_irq_nosync(ts->spi->irq);
ts->pending = 1;
hrtimer_start(&ts->timer, ktime_set(0, TS_POLL_DELAY),
HRTIMER_MODE_REL);
}
}
spin_unlock_irqrestore(&ts->lock, flags);
return IRQ_HANDLED;
}
Can that be a problem for Xenomai?
Kernel: 2.6.33.7
Xenomai: 2.5.5.2
ipipe: ARM 1.18-00
config: see attachement.
Thanks for any help,
Henri
.config
Description: Binary data
_______________________________________________ Xenomai-help mailing list [email protected] https://mail.gna.org/listinfo/xenomai-help
