Steph:
I share interrupts within a single rtl thread on a personal computer. One application 
that
I am developing has 4 PCI frame grabber boards, a network card and a video card in a
Iwill KK266 Personal Computer mother board. With only 4 interrupts for the PCI bus, you
have to share. Here is what I do:

1) At boot up, go into the BIOS / CMOS set-up utility. (Press <Delete> Key). Look for
the PnP / PCI Configurations or similar.

2) Change the IRQ assignments / move boards in PCI slots until the slots that contain 
the
boards that your driver is going to operate are sharing IRQs, but none of the other 
boards
(Network, video etc.) are sharing an IRQ with any of the boards that your driver is 
going
to operate.

3) In my init_module, after I do the pci_find_device(...), I fill in a little array 
with
the IRQ of each device as I find it and check to see if the current device has the same
interrupt as a device found earlier. If it does, then I skip the 
rtl_request_global_irq()
call for that device. It would fail if we made the call as this IRQ was already 
allocated
to our handler (interrupt service routine) when the earlier device was discovered.

4) In my handler, I check the status of all boards that share the IRQ number that was 
passed to the handler. If any board's status indicates that it has an interrupt 
pending, 
service it.

As you have probably noticed, this requires that the boards that your driver are to 
control have some type of interrupt status register.

Two of the best sources of information that I have found for drivers / PCI bus is
Alessandro Rubini's "Linux Device Drivers" (O'Reilly) and Tom Shanley / Don Anderson's 
"PCI System Architecture" (Addison Wesley). I hope this is helpful, if I skipped over 
something that you are unfamiliar with, shoot me an email and I will be glad to help.

Best Regards,
Wayne


"S. Ancelot" wrote:
> 
> This does not help since you will be very lucky if  it remains an unused
> IRQ !!!!
> Have you looked at a machine using USB video, network .....?
> Bye
> steph
> 
> Herman Bruyninckx wrote:
> 
> >On Mon, 4 Feb 2002, S. Ancelot wrote:
> >
> >>What will you do when you have two PCI boards drived by realtime driver
> >>that share the same  IRQ  ?
> >>
> >Put them in another PCI slot...
> >
> >Herman
> >
> >-- [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/
> >
> >
> >
> 
> -- [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/
-- [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/

Reply via email to