[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#434571: Module snd-sb16 set interrupts wrong



Package: linux-image
Version: 2.6.21-2

I have the Sound Blaster 16 OEM card CT1790 which I have mainly used
to play CDs thru.  It has jumpers to set IRQs and it's set at irq2.  I
seem to only be able to get it to work OK at irq5 which is the default
for the card.  Except that my Modem is on irq 5.  That's why I set the
jumper to irq2.  Now the card, while not PnP, can have it's interrupts
set by software (by Linux software ?).  Well, yes, because when I load
the snd-sb16 module for it and specify irq=2 I find from
/proc/interrupts that it's been set to irq 5 and the sound card works
OK (at least with .wav files).  So the linux software must have changed
the irq 2 (that I jumpered) to irq 5.  This happens when I haven't
used my modem yet and irq 5 is still available.

But now I can't use my modem.  If I remove the module, irq 5 is
available (per /proc/int*) and the modem will grab irq 5 and try to
dial.  But I get all sorts of errors due the the shorting out of the
irq 5 line by the sound card since irq 5 is still set in the sound
card even though the sound card module has been removed and irq 5 has
been released by the kernel.  My sound card is working right since
it's sending 0 volts (a grounded line --actually low impedance) on the
irq 5 line to indicate that it isn't sending any interrupts.  So the
kernel needs to have a list of resources that exist in hardware but
are not currently supported by any loaded module, or the like.

Once the interrupt has been changed to 5, the only way I know to get
it back to 2 is to power-down (turn off the power) and then boot again.
This is not a power-on reboot.

Now, if when loading the snd-sb16 module after I start the modem so
that irq 5 is in use with irq=2 on the command line, /proc/int*
does show that irq 9 is for SoundBlaster (since irq 2 and 9 are
really the same irq).  OK so far but irq 9 is never sent by the
sound-card when I try to use it, although the module is apparently
listening for it.  Nor is irq 5 sent either as may be checked by
starting the modem and checking the number of interrupts sent per
/proc/int* after trying to play a .wav file.  Playing a .wav file only
plays the first couple of words since apparently no interrupts are
sent.

So it seems to me that the snd-sb16 module may not be able to change
the interrupts except perhaps to reset the card so that the default
irq 5 is set it the card, overriding what may be set by jumpers.
If the driver has such limitations, they need to be either fixed or
documented.

			David Lawyer



Reply to: