Yes, its a bug! My fault. I already sent Linus a patch. It is not test9-pre1. I have attached it here for you and others on lkml. Please let me know how it works for you. Patch applies to test7 through test8, and test9-pre1. Thanks for your time, Paul Laufer On Thu, Sep 14, 2000 at 12:10:36AM -0700 or thereabouts, Joachim Achtzehnter wrote: > Here is some more info about this problem: > > The trouble is caused by the driver's attempt to find multiple > soundblaster cards. Specifying multiple=0 as a module option for sb fixes > the problem. Note, however, this quote from the Documentation/Soundblaster > file: > > multiple=0 Set to disable detection of multiple Soundblaster cards. > Consider it a bug if this option is needed, and send in a > report. > > So, this is a bug then! > > The function init_sb in drivers/sound/sb_card.c contains a detection loop > from card=0..SB_CARDS_MAX. This doesn't work, however, because the > second time around it uses the same module parameters (DMA/IRQ/IO) and > hence attempts to detect the exact same card instance. The result is not > only that no second card is found, which is ok in my case, but the > originally detected card is screwed up as well. > > I'm not sufficiently familiar with the driver to know what it should > do. Could it be that once it can't find a card via isapnp it should bail > out from this loop? > > Joachim > > -- > work: [EMAIL PROTECTED] (http://www.realtimeint.com) > private: [EMAIL PROTECTED] (http://www.kraut.bc.ca)
--- linux-virgin/drivers/sound/sb_card.c Sat Sep 9 15:06:13 2000 +++ linux/drivers/sound/sb_card.c Sat Sep 9 15:07:16 2000 @@ -647,7 +647,7 @@ static int __init init_sb(void) { - int card, max = multiple ? SB_CARDS_MAX : 1; + int card, max = (multiple && isapnp) ? SB_CARDS_MAX : 1; printk(KERN_INFO "Soundblaster audio driver Copyright (C) by Hannu Savolainen 1993-1996\n"); @@ -660,6 +660,7 @@ if(!sb_cards_num) { printk(KERN_NOTICE "sb: No ISAPnP cards found, trying standard ones...\n"); isapnp = 0; + max = 1; } else break; }