[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.
 
/Mikael

-----Original Message-----
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.
 
/Mikael

-----Original Message-----
From: owner-dev-etrax@xxxxxxx.com]On">mailto:owner-dev-etrax@xxxxxxx.com]On Behalf Of Terje Pedersen
Sent: Tuesday, November 26, 2002 1:05 PM
To: dev-etrax
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?
 
Kernel: 2.4.19
Etrax: MCM
Board: Custom
 
Terje Pedersen
Jakob Hatteland Computer