sb driver only accepts 16 bit dma channels 5,6,7
I'm not subscribed to this list, id appreciate it if replies were CC'd to me.
I have a ISA soundblaster (vibra) 16. By default it uses DMA 3 for its 16 bit dma channel. For some reason the oss sb.o driver included in the kernel only accepts 16 bit dma values of 5, 6, or 7. Using the isapnp support in the 2.4 kernel, the driver accepts dma 3 as detected by isapnp. But, when dma 3 is given as the 16 bit dma channel on the kernel command line, the sb driver rejects it and no 16 bit dma channel is set up.
I have attached a patch, made against 2.4.19rc3, which makes the sb driver accept any DMA channel number for the 16 bit channel. This patch works for me on my system.
Thanks,
Andrew Friedley
drivers/sound/sb_common.c +5 -5
@@ -801,11 +801,11 @@if (hw_config->dma2 ==-1 ) devc->dma16 = devc->dma8; -else if (hw_config->dma2 <5 || hw_config->dma2 >7 ) - { -printk (KERN_WARNING "SB16: Bad or missing 16 bit DMA channel\n" ); - devc->dma16 = devc->dma8; - } +// else if (hw_config->dma2 < 5 || hw_config->dma2 > 7) +// { +// printk(KERN_WARNING "SB16: Bad or missing 16 bit DMA channel\n"); +// devc->dma16 = devc->dma8; +// } else devc->dma16 = hw_config->dma2;