[ALSA] Prevent ALSA trident driver from grabbing pcnet32 hardware
authorJon Mason <jdmason@us.ibm.com>
Fri, 13 Jan 2006 12:14:53 +0000 (13:14 +0100)
committerJaroslav Kysela <perex@suse.cz>
Sun, 22 Jan 2006 15:24:18 +0000 (16:24 +0100)
Modules: Trident driver

Some pcnet32 hardware erroneously has the Vendor ID for Trident.  The
pcnet32 driver looks for the PCI ethernet class before grabbing the
hardware, but the current trident driver does not check against the
PCI audio class.  This allows the trident driver to claim the pcnet32
hardware.  This patch prevents that.

Per Jiri Slaby's request, I changed the trident driver to use
PCI_DEVICE macro and PCI ID #defines.

This patch is untested on Trident 4DWAVE_DX hardware, but has been
tested on pcnet32 hardware.

Signed-off-by: Jon Mason <jdmason@us.ibm.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/trident/trident.c

index 2b21df1..b453804 100644 (file)
@@ -64,9 +64,11 @@ module_param_array(wavetable_size, int, NULL, 0444);
 MODULE_PARM_DESC(wavetable_size, "Maximum memory size in kB for wavetable synth.");
 
 static struct pci_device_id snd_trident_ids[] = {
-       { 0x1023, 0x2000, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, },   /* Trident 4DWave DX PCI Audio */
-       { 0x1023, 0x2001, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, },   /* Trident 4DWave NX PCI Audio */
-       { 0x1039, 0x7018, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, },   /* SiS SI7018 PCI Audio */
+       {PCI_DEVICE(PCI_VENDOR_ID_TRIDENT, PCI_DEVICE_ID_TRIDENT_4DWAVE_DX), 
+               PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0},
+       {PCI_DEVICE(PCI_VENDOR_ID_TRIDENT, PCI_DEVICE_ID_TRIDENT_4DWAVE_NX), 
+               0, 0, 0},
+       {PCI_DEVICE(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_7018), 0, 0, 0},
        { 0, }
 };