Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 May 1997 21:18:52 +1000
From:      Bruce Evans <bde@zeta.org.au>
To:        gurney_j@resnet.uoregon.edu, se@FreeBSD.ORG
Cc:        current@FreeBSD.ORG
Subject:   Re: cvs commit: src/sys/sys interrupt.h src/sys/kern kern_intr.c
Message-ID:  <199705271118.VAA05558@godzilla.zeta.org.au>

next in thread | raw e-mail | index | archive | help
>driver's handler in turn. There is no provision to deal 
>with Edge triggered shared interrupts, though. Your 
>driver will have to make sure, that the interrupt pin
>sees a new Edge after you leave the multiplex handler,
>or you will never again see an IRQ. This is normally 
>done by looping until the interrupt line has become
>inactive, and this loop should go into the low level
>(coded in assembler) interrupt code, IMHO ...

No, the loop is best done in individual drivers.  The low level
code can't read the interrupt pin, at least for the ICU case,
and drivers can more easily keep track of their state if they
do they loop themselves.  The only reason to return to the
low level is to give other interrupt handlers a chance to run,
which is only worth doing if all the drivers cooperate, but
none do.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199705271118.VAA05558>