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

Attachment: .config
Description: Binary data

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

Reply via email to