On Tue, Sep 19, 2000 at 05:00:54PM +0900, Mukaila olundegun wrote:
> Hello all again,
>
> 1. Does it make sense to register the shared interrupts via request_irq()
> and later call rtl_request_irq() to install global handlers (rtl_global[]).
> The reason for this stupid idea is that when I use only rtl_request_irq()
> it seems the interrupt handler is not producing correct result (it doesn't
> keep individual device information) when used with two different
> modules,different handler and same irq. In addition rtl_request_global_irq()
> returns -EBUSY after the first call.
rtl_request_global_irq installs a single interrupt handler for a singe irq.
There is no support in this call for shared irqs -- you must do it yourself or
use sigaction.
>
> 2. Does RTL also use handle_IRQ_event() (in i386/kernel/irq.c) to call the
No. When you install a rtl handler qiwith rtl_request_irq you get called
directly by the rtl interrupt intercept code. See rtl_intercept in
rtlinux/main/rtl_core.c
> actual handler??If not, what is RTL using to call the actual process
> handler(isr)?
>
> Thanks
> Mukaila
> ----- Original Message -----
> From: David Olofson <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>; Mukaila olundegun <[EMAIL PROTECTED]>
> Cc: Tomasz Motylewski <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
> Sent: Tuesday, September 19, 2000 1:06 AM
> Subject: Re: [rtl] Linux request_irq() vs RTLinux rtl_request_irq()
>
>
> > Fri, 15 Sep 2000 [EMAIL PROTECTED] wrote:
> > [...]
> > > > is available in RTLinux for shared interrupt number will simplify this
> > > > operation. So that when the interrupt service routine is called,
> IRQ_number
> > > > and device_Id will be passed in addition to the register states.
> (Though, it
> > > > required additional work!!)
> > > > >
> > >
> > > The problem is "register states". Our low level IRQ handler code doesn't
> know anything
> > > about your board and it seems like it needs to know a great deal in
> order to figure things
> > > out. If you use sigaction in rtlinux, it is trivial to manage a shared
> irq by doing
> > > handler:
> > > look at board
> > > if irq not for me call oldhandler
> > > else process irq
> > > Since each sigaction returns the old handler information, you can
> dynamically
> > > build a chain.
> >
> > BTW, does the sigaction (un)register code keep track of this kind of
> chains; ie
> > is it safe to remove handlers in the "wrong" order? (In case they are
> installed
> > by different modules.)
> >
> > The "trick" has been around for ages, but in it's original form (ie no
> explicit
> > OS support), there were nasty side effects... :-)
> >
> >
> > David Olofson
> > Programmer
> > Reologica Instruments AB
> > [EMAIL PROTECTED]
> >
> > ..- M u C o S --------------------------------. .- David Olofson ------.
> > | A Free/Open Multimedia | | Audio Hacker |
> > | Plugin and Integration Standard | | Linux Advocate |
> > `------------> http://www.linuxdj.com/mucos -' | Open Source Advocate |
> > ..- A u d i a l i t y ------------------------. | Singer |
> > | Rock Solid Low Latency Signal Processing | | Songwriter |
> > `---> http://www.angelfire.com/or/audiality -' `-> [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/
> >
> >
>
> -- [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/
--
---------------------------------------------------------
Victor Yodaiken
Finite State Machine Labs: The RTLinux Company.
www.fsmlabs.com www.rtlinux.com
-- [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/