Subject: Wrong matching of Sounblaster AudioPCI 128
To: None <tech-kern@netbsd.org>
From: Emmanuel Dreyfus <manu@netbsd.org>
List: tech-kern
Date: 06/04/2006 13:09:22
Hello

I have got a Soudblaster AudioPCI 128, model number CT4810. Its PCI vendor
and product ID are 0x1102/0x8938, which clashes with CreativeLabs Ectiva 1938.

Here is what I get in dmesg:
eap0 at pci4 dev 8 function 0: Ensoniq AudioPCI 97 ES1373-8(rev. 0x08)

With our current sources, playing sound on this card will quickly produce
an unpleasant panic eap_intr: unexpected MCCB interrupt.

In the eap driver, ES1373-8 means setting  ct5880 to 1. Removing that 
statement fixes the panic, and the card becomes fully usable.

I am ready to commit a fix writen the right way, but I am not sure of the
way I should proceed. It seems there is no way to properly distinguish 
Ectiva 1938 and CT4810. Therefore, my idea would be to add a flag to the 
kernel config file:

eap*    at pci? dev ? function ? flags 0x0001

flags = 0x000 would be the current behavior, and flags=0x0001 would 
disable ct5880.

Is that acceptable? Any better idea?

-- 
Emmanuel Dreyfus
manu@netbsd.org