Dear Victor and all:
I have been thinking about the problem of sharing an interrupt between
rtl and Linux and was thinking possibly of changing my application to
try to share an IRQ with Linux.
Looking at documentation on rtl_request_irq(), it looks as though EBUSY
error is returned if another handler is already installed for a requested
IRQ. How is it possible then to install a handler for an interrupt for
which a Linux task has already installed a handler?
In my rtl init_module(), I keep a list of the interrupt numbers discovered
in earlier devices (bt878s) and skip calling rtl_request_irq() if the
interrupt number for the current device being initialized was found when
initializing a previous device.
Wayne
Victor Yodaiken wrote:
>
> The problem is caused by "level triggered interrupts" on shared lines.
> In this situation, unless you clear the interrupt source (by e.g. reading a
> status register on the interrupting device), the interrupt remains asserted.
> So you cannot unmask the interrupt controller. ISA is edge triggered.
> Many boards have logic that handles this problem by mapping other
> interrupts to a controller so you can mask the individual source
> instead of all PCI interrupts at that level
>
> Device ----}
> }slave controller ---> PCI interrupt level X ->
> Device ----}
>
> Or something like that.
>
> On Mon, Jun 18, 2001 at 09:52:51PM -0400, Reef Morse wrote:
> > In my application, I can check to see if my board triggered the interrupt.
> > If it didn't, I just exit to other handlers. It's about 4 lines of code in
> > assembly, so it doesn't take much time. This is on an ISA bus. Does this
> > apply for the PCI bus as well?
> >
> > Regards, Reef Morse
> >
> > ----- End of forwarded message from [EMAIL PROTECTED] -----
> > -- [rtl] ---
> > To unsubscribe:
> > echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
> > echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
> > --
> > For more information on Real-Time Linux see:
> > http://www.rtlinux.org/rtlinux/
>
> ----- End of forwarded message from [EMAIL PROTECTED] -----
> -- [rtl] ---
> To unsubscribe:
> echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
> echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
> --
> For more information on Real-Time Linux see:
> http://www.rtlinux.org/rtlinux/
----- End of forwarded message from [EMAIL PROTECTED] -----
-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
--
For more information on Real-Time Linux see:
http://www.rtlinux.org/rtlinux/