[alsa-devel] HDA-Intel - Patch to support detecting HD Audio devices with PCI class code

Takashi Iwai tiwai at suse.de
Thu Nov 13 11:09:55 CET 2008


At Thu, 13 Nov 2008 18:01:00 +0800,
Yang, Libin wrote:
> 
> 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 at amd.com>

Thanks, applied now.

(BTW, your embedded patch seems broken likely by MUA.  Please fix
 the setting or use attachments if it's difficult.)


Takashi

> 
> 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 at suse.de]
> > Sent: Tuesday, November 11, 2008 4:43 PM
> > To: Yang, Libin
> > Cc: alsa-devel at 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
> 
> 


More information about the Alsa-devel mailing list