Re: (fwd) SB16 module different in 2.0.0 and 2.0.25?

Peter T. Breuer (ptb@oboe.it.uc3m.es)
Sat, 16 Nov 1996 19:37:46 +0000 (WET)


Because I can't seem to be able to persuade my PnP SoundBlaster 16 to
shift itself off of IRQ 11, I have patched sb_common.c in drivers/sound
of 2.0.25 to let me at least tell linux that I am using IRQ 11. The
result? Perfect sound once again! Hurray!

"A month of sundays ago Hannu Savolainen wrote:"
> On Sat, 16 Nov 1996, Philippe Strauss wrote:
> > Maybe it caused to much conflict with old SCSI controller that allow only
> > IRQ11 to be used. My SB16 is a SB16 SCSI, irq 9 10 11 12 are available
> > to the SCSI port of the card, not for audio. IRQ 5 7 are fine for audio.
> It is not a conflict. SB16 does _NOT_ permit using IRQ11. In this case
> the card is SB16 PnP which can use IRQ11 too but Linux doesn't support
> PnP cards.

> The only change is added code to reject invalid IRQs. Linux versions
> earlier than 2.0.1 just accepted them silently.

As you say, it is legal for a (PnP) SB16 to use IRQ 11. It came this
way from the factory. I have never reconfigured it. I don't have any
configuration diskettes either. Please can you incorporate some sort of
compile-time option to allow that IRQ back in? Otherwise people are
going to think their SB16's don't work with Linux.

In the meantime, the simple patch follows. Please do fix it to fit in
with the standard coding style and nuke any conflicts. I only had 5
mins free and I don't know the code. (i.e. "with apologies").

Peter T. Breuer
,---------------------------------------------------------------------------
|Departamento de Ingenieria de Sistemas Telematicos, Universidad Politecnica
|de Madrid, Escuela Tecnica Superior de Ingenieros de Telecomunicacion,
|Ciudad Universitaria, E--28040 Madrid, SPAIN.
|Tel. Office : +34 (1)336 6831
| Fax : +34 (1)543 2077 or 336 7333
|Internet : <ptb@eng.cam.ac.uk, ptb@comlab.ox.ac.uk, ptb@dit.upm.es>
| URL : http://www.dit.upm.es:80/~ptb/
`---------------------------------------------------------------------------

*** /usr/src/linux-2.0.25/drivers/sound/sb_common.c
--- sb_common.c.orig Sat Nov 16 19:23:41 1996
+++ sb_common.c Sat Nov 16 17:57:00 1996
@@ -305,7 +305,13 @@
break;
default:
printk ("SB16 IRQ%d is not possible\n", level);
+# ifdef PTB_PROMISES_NOT_TO_BREAK_SOUND
return 0;
+# else
+ /* This is because my PnP SB needs IRQ 11 */
+ ival=16; /* probably better off as random! */
+ break;
+# endif
}
sb_setmixer (devc, IRQ_NR, ival);
return 1;
***