[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: PortA interrupt busy?
I have just been told that the gpio driver isn't really prepared for interrup sharing.
In gpio_pa_interrupt alla Port PA interrupts are cleared. There are several ways
to solve this:
1. Disable the GPIO driver
2. Use the GPIO driver alarm mechanism from your driver
3. Read the pin in your interrupt handler to check if the interrupt
was on your pin
4. Modify the GPIO driver so that it only clears the interrupts it is waiting on.
From: Mikael Starvik
Sent: Tuesday, November 26, 2002 2:17 PM
To: 'Terje Pedersen'; dev-etrax
Subject: RE: PortA interrupt busy?
acrh/cris/drivers/gpio.c does request_irq(PA_IRQ_NBR, ..., SA_SHIRQ | SA_INTERRUPT, ...)
This means that this driver has allocated the interrupt but also allows the interrupt to be
shared with other drivers. To be able to share this interrupt you must use exactly the
same flags in your request_irq e.g. SA_SHIRQ | SA_INTERRUPT.
From: firstname.lastname@example.org]On">mailto:email@example.com]On Behalf Of Terje Pedersen
Sent: Tuesday, November 26, 2002 1:05 PM
Subject: PortA interrupt busy?
A call to request_irq(11.... is returning -EBUSY and when I look at the /proc/interrupts its standing
11: 0 + gpio PA
1. What does the + sign in the /proc/interrupts list mean?
2. What could be the reason its busy?
Jakob Hatteland Computer