Thread (4 messages) flat view 4 messages, 2 authors, 2004-03-11

Re: PPC405GP: Spurious interrupt during handing level triggered interrupts

From: Kenneth Johansson <hidden>
Date: 2004-03-10 16:30:14

On Tue, 2004-03-09 at 23:58, listmember@orkun.us wrote:
Now, to prevent the second spurious branching, I used ack_irq() call
(actuall macro) to manually ack the interrupt (before enabling interrupts
again in ioctl). It works this way.

Is this OK to use or is there a preferred way to do this?
That's mainly what I do also.

I had this comment in the cvs log.
--
The status register was not reset by enable_irq so it
remembered the last one resulting in every interrupt
getting reported twice.
--
and the code that I used was

/* We have to do this manually as enable do not do this for us */
void mask_SR(int dev_irq){

	int bit;
	bit = (dev_irq-17) +25;

	mtdcr(DCRN_UIC_SR(UIC0), (1 << (31 - bit)));
}
--
basically parts of what irq_ack would do (dev_irq is a privat number
local to this driver)

Perhaps the enable code should reset this bit also?? everyone that dose
this type of userspace driver is going to hit this problem.


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help