Hi Takashi,
The following patch is updated. Would you please review it? Thanks a lot. ------------------------------------------------------------------------ -
The patch uses HD Audio PCI class code to detect AMD HD Audio cards.
Signed-off-by: Libin Yang libin.yang@amd.com
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 8f6c1df..8ca441c 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -292,6 +292,8 @@ enum { /* Define VIA HD Audio Device ID*/ #define VIA_HDAC_DEVICE_ID 0x3288
+/* HD Audio class code */ +#define PCI_CLASS_MULTIMEDIA_HD_AUDIO 0x0403
/* */ @@ -415,6 +417,7 @@ enum { AZX_DRIVER_ULI, AZX_DRIVER_NVIDIA, AZX_DRIVER_TERA, + AZX_DRIVER_GENERIC, AZX_NUM_DRIVERS, /* keep this as last entry */ };
@@ -428,6 +431,7 @@ static char *driver_short_names[] __devinitdata = { [AZX_DRIVER_ULI] = "HDA ULI M5461", [AZX_DRIVER_NVIDIA] = "HDA NVidia", [AZX_DRIVER_TERA] = "HDA Teradici", + [AZX_DRIVER_GENERIC] = "HD-Audio Generic", };
/* @@ -2203,6 +2207,7 @@ static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci, chip->playback_streams = ATIHDMI_NUM_PLAYBACK; chip->capture_streams = ATIHDMI_NUM_CAPTURE; break; + case AZX_DRIVER_GENERIC: default: chip->playback_streams = ICH6_NUM_PLAYBACK; chip->capture_streams = ICH6_NUM_CAPTURE; @@ -2427,6 +2432,11 @@ static struct pci_device_id azx_ids[] = { { PCI_DEVICE(0x10de, 0x0bd7), .driver_data = AZX_DRIVER_NVIDIA }, /* Teradici */ { PCI_DEVICE(0x6549, 0x1200), .driver_data = AZX_DRIVER_TERA }, + /* AMD Generic, PCI class code and Vendor ID for HD Audio */ + { PCI_DEVICE(PCI_VENDOR_ID_ATI, PCI_ANY_ID), + .class = PCI_CLASS_MULTIMEDIA_HD_AUDIO << 8, + .class_mask = 0xffffff, + .driver_data = AZX_DRIVER_GENERIC }, { 0, } }; MODULE_DEVICE_TABLE(pci, azx_ids);
-----Original Message----- From: Takashi Iwai [mailto:tiwai@suse.de] Sent: Tuesday, November 11, 2008 4:43 PM To: Yang, Libin Cc: alsa-devel@alsa-project.org Subject: Re: HDA-Intel - Patch to support detecting HD Audio devices
with
PCI class code
At Tue, 11 Nov 2008 16:39:27 +0800, Yang, Libin wrote:
Thanks for the comments and I will refine the patch.
Thanks. One thing I forgot to mention.
static unsigned int azx_default_codecs[AZX_NUM_DRIVERS]
__devinitdata =
{ [AZX_DRIVER_ICH] = 3, [AZX_DRIVER_ATI] = 3,
- [AZX_DRIVER_AMD_AUTO] = 3,
I thought you'll have up to 4 codecs?
This array is completely changed in the recent code. There is only one entry (TERRA) as an exception.
Please create a patch based on the latest sound tree, git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6.git either master branch or topic/hda branch.
thanks,
Takashi