Subject: Re: Wrong matching of Sounblaster AudioPCI 128
To: Emmanuel Dreyfus <manu@netbsd.org>
From: Jared D. McNeill <jmcneill@invisible.ca>
List: tech-kern
Date: 06/04/2006 10:43:04
On 4-Jun-06, at 10:09 AM, Emmanuel Dreyfus wrote:

> 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?

Does the AudioPCI 128 have subsystem vendor ID/subsystem IDs that you  
could use to match?

Cheers,
Jared