SB16 initialisation - success

Duncan Roe (DUNC@cbrdm2.cv.com)
Wed, 11 Sep 1996 12:29:00 +1000


Hi Hannu,

With both patches, soft reboot works again. Many thanks!

For your confirmation, I append the patches. I had a spot of bother with tabs
becoming spaces and trailing spaces being lost, so you should indeed send Linus
your originals rather than take them from this mail.

For anyone who wants to try it, "patch -l" *may* work.

Cheers ... Duncan.

-------------------------------------------------------------------------
*** sb_common.c.old Mon Sep 9 12:45:01 1996
--- sb_common.c Mon Sep 9 12:45:43 1996
***************
*** 674,682 ****
devc->dev = num_audiodevs;
devc->caps = hw_config->driver_use_1;

- irq2devc[hw_config->irq] = devc;
- devc->irq_ok = 0;
-
if (snd_set_irq_handler (hw_config->irq,
sbintr, "sound blaster", devc->osp) < 0)
{
--- 674,679 ----
***************
*** 684,689 ****
--- 681,689 ----
irq2devc[hw_config->irq] = NULL;
return;
}
+
+ irq2devc[hw_config->irq] = devc;
+ devc->irq_ok = 0;

if (devc->major == 4)
if (!sb16_set_irq_hw (devc, devc->irq)) /* Unsupported IRQ */
-------------------------------------------------------------------------
*** sb_common.c.old Tue Sep 10 09:36:48 1996
--- sb_common.c Tue Sep 10 09:39:56 1996
***************
*** 705,711 ****
}

#ifndef NO_SB_IRQ_TEST
! for (n = 0; n < 3 && devc->irq_ok == 0; n++)
if (sb_dsp_command (devc, 0xf2)) /* Cause interrupt immediately */
{
int i;
--- 705,713 ----
}

#ifndef NO_SB_IRQ_TEST
! if (devc->major != 4 || devc->minor > 11) /* Not Sb16 v4.5 or v4.11 */
! {
! for (n = 0; n < 3 && devc->irq_ok == 0; n++)
if (sb_dsp_command (devc, 0xf2)) /* Cause interrupt immediately */
{
int i;
***************
*** 723,728 ****
--- 725,731 ----
{
DDB (printk ("IRQ test OK (IRQ%d)\n", devc->irq));
}
+ }
#endif

request_region (hw_config->io_base, 16, "sound blaster");
-------------------------------------------------------------------------