Serial Driver IRQ Sharing with Non-Serial Devices

James Gurganus (james@gurganus.net)
Thu, 30 Sep 1999 23:19:30 -0700


Hi Folks,

Hoping someone here can help me with a problem regarding
the serial driver sharing an IRQ with a non-serial driver. Some
one please guide me gently to a better place if this is the wrong
forum for this question. :)

I have an Intel i810 based motherboard with a single PCI slot,
on-board 82557+ Ethernet, and on-board ES1373 sound. In
the PCI slot is an ActionTec PCI modem with built-in controller
(i.e., _not_ a win-modem). Unfortunately, the ES1371 sound
and PCI slot (modem) share PCI INT A which is routed to
IRQ 11.

In this configuration with both the sound driver and serial driver
sharing IRQ 11, sound works but the modem doesn't (e.g., no
response in minicom). If I disable the sound driver (rmmod
es1371), the modem works fine.

We've tested the problem with Linux 2.2.12 and many revisions
of 2.3.X up to and including 2.3.18ac10.

Other testing we have done:
1) On a similar i810-based motherboard with more slots, I
have arranged an IRQ conflict between the ethernet driver and the
serial driver. In this case, the ethernet driver works (mostly) but
the modem does not. This seems to help point guiltiness at the
serial driver.
2) On the single slot i810 board, if I physically wire the ES1373
interrupt line to the interrupt (PCI INT C) of the Ethernet (in effect,
wire-ORing them) AND force the es1371 driver to use the IRQ
for INT C (in this case, IRQ 5), all three components work fine.
The ethernet and sound drivers successfully share IRQ 5 and the
modem is happy with its independent IRQ. This again seems to
point to the serial driver as the culprit.

Of course, our hacked blue-wire solution isn't too great (to say the
least). Plus, Win98 seems to successfully share the serial device
with the sound making the local Linux guys/gals look bad :-), but
also this helps give confidence that the hardware is okay.

So finally the questions:

1) Is there a limitation with the serial driver with respect to
interrupt
sharing? Some folks have suggested that the serial driver can only
share interrupts with serial devices and not with non-serial devices.
2) If the answer to 1 is "yes, there is a limitation", is anybody
looking
into a fix/improvement? If so, any guesses on the availability?
3) If the serial driver IS capable, any ideas of what else could be
wrong?

Thanks very much for any help!

--
James Gurganus
(james@gurganus.net)

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/