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/
