aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci/hda/hda_intel.c
diff options
context:
space:
mode:
authorYang, Libin <Libin.Yang@amd.com>2008-11-13 05:07:07 -0500
committerTakashi Iwai <tiwai@suse.de>2008-11-13 05:07:07 -0500
commitc4da29ca08e09ed41a2030c1f7b5860f116573be (patch)
treeafeadeb680db9a479242ba19b103679a3ad0fb9e /sound/pci/hda/hda_intel.c
parent3a95cb972bb0eb80dfdb42f11628e6d58bcdde29 (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.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index 3e112df1c0dc..f73c13fdd409 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};
2432MODULE_DEVICE_TABLE(pci, azx_ids); 2442MODULE_DEVICE_TABLE(pci, azx_ids);