diff options
author | Yang, Libin <Libin.Yang@amd.com> | 2008-11-13 05:07:07 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2008-11-13 05:07:07 -0500 |
commit | c4da29ca08e09ed41a2030c1f7b5860f116573be (patch) | |
tree | afeadeb680db9a479242ba19b103679a3ad0fb9e /sound/pci/hda/hda_intel.c | |
parent | 3a95cb972bb0eb80dfdb42f11628e6d58bcdde29 (diff) |
ALSA: hda - support detecting HD Audio devices with PCI class code
The patch uses HD Audio PCI class code to detect AMD HD Audio cards.
Signed-off-by: Libin Yang <libin.yang@amd.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci/hda/hda_intel.c')
-rw-r--r-- | sound/pci/hda/hda_intel.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 3e112df1c0d..f73c13fdd40 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c | |||
@@ -292,6 +292,8 @@ enum { | |||
292 | /* Define VIA HD Audio Device ID*/ | 292 | /* Define VIA HD Audio Device ID*/ |
293 | #define VIA_HDAC_DEVICE_ID 0x3288 | 293 | #define VIA_HDAC_DEVICE_ID 0x3288 |
294 | 294 | ||
295 | /* HD Audio class code */ | ||
296 | #define PCI_CLASS_MULTIMEDIA_HD_AUDIO 0x0403 | ||
295 | 297 | ||
296 | /* | 298 | /* |
297 | */ | 299 | */ |
@@ -415,6 +417,7 @@ enum { | |||
415 | AZX_DRIVER_ULI, | 417 | AZX_DRIVER_ULI, |
416 | AZX_DRIVER_NVIDIA, | 418 | AZX_DRIVER_NVIDIA, |
417 | AZX_DRIVER_TERA, | 419 | AZX_DRIVER_TERA, |
420 | AZX_DRIVER_GENERIC, | ||
418 | AZX_NUM_DRIVERS, /* keep this as last entry */ | 421 | AZX_NUM_DRIVERS, /* keep this as last entry */ |
419 | }; | 422 | }; |
420 | 423 | ||
@@ -428,6 +431,7 @@ static char *driver_short_names[] __devinitdata = { | |||
428 | [AZX_DRIVER_ULI] = "HDA ULI M5461", | 431 | [AZX_DRIVER_ULI] = "HDA ULI M5461", |
429 | [AZX_DRIVER_NVIDIA] = "HDA NVidia", | 432 | [AZX_DRIVER_NVIDIA] = "HDA NVidia", |
430 | [AZX_DRIVER_TERA] = "HDA Teradici", | 433 | [AZX_DRIVER_TERA] = "HDA Teradici", |
434 | [AZX_DRIVER_GENERIC] = "HD-Audio Generic", | ||
431 | }; | 435 | }; |
432 | 436 | ||
433 | /* | 437 | /* |
@@ -2203,6 +2207,7 @@ static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci, | |||
2203 | chip->playback_streams = ATIHDMI_NUM_PLAYBACK; | 2207 | chip->playback_streams = ATIHDMI_NUM_PLAYBACK; |
2204 | chip->capture_streams = ATIHDMI_NUM_CAPTURE; | 2208 | chip->capture_streams = ATIHDMI_NUM_CAPTURE; |
2205 | break; | 2209 | break; |
2210 | case AZX_DRIVER_GENERIC: | ||
2206 | default: | 2211 | default: |
2207 | chip->playback_streams = ICH6_NUM_PLAYBACK; | 2212 | chip->playback_streams = ICH6_NUM_PLAYBACK; |
2208 | chip->capture_streams = ICH6_NUM_CAPTURE; | 2213 | chip->capture_streams = ICH6_NUM_CAPTURE; |
@@ -2427,6 +2432,11 @@ static struct pci_device_id azx_ids[] = { | |||
2427 | { PCI_DEVICE(0x10de, 0x0bd7), .driver_data = AZX_DRIVER_NVIDIA }, | 2432 | { PCI_DEVICE(0x10de, 0x0bd7), .driver_data = AZX_DRIVER_NVIDIA }, |
2428 | /* Teradici */ | 2433 | /* Teradici */ |
2429 | { PCI_DEVICE(0x6549, 0x1200), .driver_data = AZX_DRIVER_TERA }, | 2434 | { PCI_DEVICE(0x6549, 0x1200), .driver_data = AZX_DRIVER_TERA }, |
2435 | /* AMD Generic, PCI class code and Vendor ID for HD Audio */ | ||
2436 | { PCI_DEVICE(PCI_VENDOR_ID_ATI, PCI_ANY_ID), | ||
2437 | .class = PCI_CLASS_MULTIMEDIA_HD_AUDIO << 8, | ||
2438 | .class_mask = 0xffffff, | ||
2439 | .driver_data = AZX_DRIVER_GENERIC }, | ||
2430 | { 0, } | 2440 | { 0, } |
2431 | }; | 2441 | }; |
2432 | MODULE_DEVICE_TABLE(pci, azx_ids); | 2442 | MODULE_DEVICE_TABLE(pci, azx_ids); |