Date: Sun, 18 Apr 1999 19:54:15 +0200 From: Gary Jennejohn <garyj@peedub.muc.de> To: freebsd-isdn@FreeBSD.ORG Subject: Re: new-bus changes break i4b Message-ID: <199904181754.TAA03401@peedub.muc.de> In-Reply-To: Your message of "Sun, 18 Apr 1999 14:37:48 %2B0200." <Pine.BSF.4.05.9904181428530.783-100000@gold.amis.net>
next in thread | previous in thread | raw e-mail | index | archive | help
Blaz Zupan writes: >> > kernel config file because my sound card needs it. The patch below is >> > based on changes between /sys/i386/isa/sio.c and /sys/isa/sio.c and it >> > could be completely wrong... >> >> it's working for me, thanks! > >Great. > >> isicprobe: Error: new unit (0) != next_isic_unit (1)! >> >> (the last message comes from i4b_isic_isa.c. >> didn't investigate further...) > >Looking at the code, it only seems to be some kind of sanity check. Every >time a new card is probed, the counter (next_isic_unit) is incremented by >1 and then a check with the newly allocated unit number is done and if it >does not correspond, the above error is printed, that's it. I'm not sure, >but it looks like this code can be safely removed. Hellmuth? > >Actually, a simmilar thing is being done in i4b_isic_pci.c, but not for >all cards. Take a look at this code: > >#ifdef ELSA_QS1PCI > case PCI_QS1000_ID: > ret = isic_attach_Eqs1pp(unit, iobase1, iobase2); > break; >#endif >#ifdef AVM_A1_PCI > case PCI_AVMA1_ID: > ret = isic_attach_avma1pp(unit, iobase1, iobase2); > if (ret) > next_isic_unit++; > return(ret); >#endif > >So next_isic_unit is being incremented only for the AVM A1 and not the >Elsa QuickStep 1000. Other than the warning message nothing bad happens if >next_isic_unit is not incremented. > Wrong. Something bad will happen if you have more than 1 card in the system. Also, if you look at the code you'll notice that the probe/attach code is not executed if there's a mismatch. Not exactly desirable. I'm surprised that it works for Stefan. next_isic_unit is actually incremented in 3 places. The AVM_A1_PCI code shown above has to increment it before the return because the rest of the code (where next_isic_unit gets incremented) can not be executed. It seems to be an error that next_isic_unit is NOT incremented in layer1/i4b_isic_pnp.c. --- Gary Jennejohn Home - garyj@muc.de Work - garyj@fkr.dec.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-isdn" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199904181754.TAA03401>