[alsa-devel] [PATCH] ALSA HDA: add support for AMD SI audio

Takashi Iwai tiwai at suse.de
Tue Dec 13 10:20:34 CET 2011


At Tue, 13 Dec 2011 16:42:12 +0800,
Andiry Xu wrote:
> 
> This patch adds support for AMD Southern Island HD audio.

Could you give some more background for this patch?
That is, it's enabling non-snooping mode for which reason, and why new
driver_type is needed, etc.


thanks,

Takashi

> 
> Signed-off-by: Andiry Xu <andiry.xu at amd.com>
> ---
>  sound/pci/hda/hda_intel.c |   14 ++++++++++++++
>  1 files changed, 14 insertions(+), 0 deletions(-)
> 
> diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
> index d1582dd..ae6b68c 100644
> --- a/sound/pci/hda/hda_intel.c
> +++ b/sound/pci/hda/hda_intel.c
> @@ -487,6 +487,7 @@ enum {
>  	AZX_DRIVER_SCH,
>  	AZX_DRIVER_ATI,
>  	AZX_DRIVER_ATIHDMI,
> +	AZX_DRIVER_SI_ATIHDMI,
>  	AZX_DRIVER_VIA,
>  	AZX_DRIVER_SIS,
>  	AZX_DRIVER_ULI,
> @@ -533,6 +534,7 @@ static char *driver_short_names[] __devinitdata = {
>  	[AZX_DRIVER_SCH] = "HDA Intel MID",
>  	[AZX_DRIVER_ATI] = "HDA ATI SB",
>  	[AZX_DRIVER_ATIHDMI] = "HDA ATI HDMI",
> +	[AZX_DRIVER_SI_ATIHDMI] = "HDA ATI SI HDMI",
>  	[AZX_DRIVER_VIA] = "HDA VIA VT82xx",
>  	[AZX_DRIVER_SIS] = "HDA SIS966",
>  	[AZX_DRIVER_ULI] = "HDA ULI M5461",
> @@ -2678,6 +2680,9 @@ static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci,
>  
>  	chip->single_cmd = single_cmd;
>  	chip->snoop = hda_snoop;
> +	/* Default non-snoop mode for ATI SI HDMI AUDIO */
> +	if (chip->driver_type == AZX_DRIVER_SI_ATIHDMI)
> +		chip->snoop = 0;
>  
>  	if (bdl_pos_adj[dev] < 0) {
>  		switch (chip->driver_type) {
> @@ -2776,6 +2781,7 @@ static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci,
>  			chip->capture_streams = ULI_NUM_CAPTURE;
>  			break;
>  		case AZX_DRIVER_ATIHDMI:
> +		case AZX_DRIVER_SI_ATIHDMI:
>  			chip->playback_streams = ATIHDMI_NUM_PLAYBACK;
>  			chip->capture_streams = ATIHDMI_NUM_CAPTURE;
>  			break;
> @@ -3037,6 +3043,14 @@ static DEFINE_PCI_DEVICE_TABLE(azx_ids) = {
>  	  .driver_data = AZX_DRIVER_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI },
>  	{ PCI_DEVICE(0x1002, 0xaa48),
>  	  .driver_data = AZX_DRIVER_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI },
> +	{ PCI_DEVICE(0x1002, 0x9902),
> +	  .driver_data = AZX_DRIVER_SI_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI },
> +	{ PCI_DEVICE(0x1002, 0xaaa0),
> +	  .driver_data = AZX_DRIVER_SI_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI },
> +	{ PCI_DEVICE(0x1002, 0xaaa8),
> +	  .driver_data = AZX_DRIVER_SI_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI },
> +	{ PCI_DEVICE(0x1002, 0xaab0),
> +	  .driver_data = AZX_DRIVER_SI_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI },
>  	/* VIA VT8251/VT8237A */
>  	{ PCI_DEVICE(0x1106, 0x3288),
>  	  .driver_data = AZX_DRIVER_VIA | AZX_DCAPS_POSFIX_VIA },
> -- 
> 1.7.4.1
> 
> 


More information about the Alsa-devel mailing list