[Prev][Next][Index][Thread]
Re: Device drivers for LINUX
At 12:00 PM 9/17/96 +0200, you wrote:
>...snipped
>Is there any distinction in the behaviour of the device driver between
>an Edge triggered interrupt and a level interrupt?
There certainly is! It stems from the hardware architecture of your system.
The 'Edge triggered' interrupt is an interrupt which is triggered only when
there is a change in the state of the interrupt line in a definite
direction. The 'Level triggered' interrupt is one which will be invoked when
a certain signal is maintained for a minimum period of time. Interrupt
controllers R made to recognize either.
>
>In another Unix I am familiar with, Level interrupts can be shared between
>a number of devices, so the first thing the interrupt service routine does is
>to check that its own device initiated the interrupt. If not, it simply
>returns, and the kernel, I think, passes control to the next driver which
>handles interrupts of the same level. What's happening in Linux?
Please note that both edge and level interrupts can be shared among devices.
Edge triggered interrupts are more inclined to sharing, though. The reason
is that a level triggered interrupt usually will not release the interrupt
line until the signal has been acknowledged by the (usually) interrupt
controller.
To sum up, the choice between Edge to Level triggered interrupts is made for
U by the system architecture, and does not depend on the whims of the device
driver.
Unfortunately, I'm not familiar with the intricacies of the Linux device
driver system, thus unable to help U there.
>
>Thanks,
>
>
>--
>Doron Zifrony 1 Oranim Str. Tel: 972-3-5304324
>Data General Technology Givat Shmuel 51905 Fax: 972-3-5325917
> Israel E-Mail: doron@dgt.co.il
>Disclaimer: The opinions expressed hereby are my personal opinions.
>
>