From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Yang, Libin" Subject: Re: HDA-Intel - Patch to support detecting HD Audio devices with PCI class code Date: Thu, 13 Nov 2008 18:01:00 +0800 Message-ID: <6077B97E85E7374DAE87B42B5AA9979709C0C2@sshaexmb1.amd.com> References: <6077B97E85E7374DAE87B42B5AA9979707B88A@sshaexmb1.amd.com><6077B97E85E7374DAE87B42B5AA9979707BA28@sshaexmb1.amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from SG2EHSOBE004.bigfish.com (outbound-sin.frontbridge.com [207.46.51.80]) by alsa0.perex.cz (Postfix) with ESMTP id 59C70244CE for ; Thu, 13 Nov 2008 11:01:22 +0100 (CET) Content-Class: urn:content-classes:message In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: alsa-devel-bounces@alsa-project.org Errors-To: alsa-devel-bounces@alsa-project.org To: Takashi Iwai Cc: alsa-devel@alsa-project.org List-Id: alsa-devel@alsa-project.org 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 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