aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorAndiry Xu <andiry.xu@amd.com>2011-12-14 03:10:27 -0500
committerTakashi Iwai <tiwai@suse.de>2011-12-14 03:18:45 -0500
commit1815b34a626742733f846ddd266a89bd2fcea28f (patch)
treedc1c5db095d9e9c23bd3e928dd01f21e3de04470 /sound
parent97e287626a219e3754a54ac654691c608b78341d (diff)
ALSA: HDA: Add support for new AMD products
This patch adds HDMI audio support for new AMD products. As HW default disable snoop, force non-snoop mode in HD audio driver. Signed-off-by: Andiry Xu <andiry.xu@amd.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound')
-rw-r--r--sound/pci/hda/hda_intel.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index d1582ddb426c..9f7c901a52e3 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -487,6 +487,7 @@ enum {
487 AZX_DRIVER_SCH, 487 AZX_DRIVER_SCH,
488 AZX_DRIVER_ATI, 488 AZX_DRIVER_ATI,
489 AZX_DRIVER_ATIHDMI, 489 AZX_DRIVER_ATIHDMI,
490 AZX_DRIVER_ATIHDMI_NS,
490 AZX_DRIVER_VIA, 491 AZX_DRIVER_VIA,
491 AZX_DRIVER_SIS, 492 AZX_DRIVER_SIS,
492 AZX_DRIVER_ULI, 493 AZX_DRIVER_ULI,
@@ -533,6 +534,7 @@ static char *driver_short_names[] __devinitdata = {
533 [AZX_DRIVER_SCH] = "HDA Intel MID", 534 [AZX_DRIVER_SCH] = "HDA Intel MID",
534 [AZX_DRIVER_ATI] = "HDA ATI SB", 535 [AZX_DRIVER_ATI] = "HDA ATI SB",
535 [AZX_DRIVER_ATIHDMI] = "HDA ATI HDMI", 536 [AZX_DRIVER_ATIHDMI] = "HDA ATI HDMI",
537 [AZX_DRIVER_ATIHDMI_NS] = "HDA ATI HDMI",
536 [AZX_DRIVER_VIA] = "HDA VIA VT82xx", 538 [AZX_DRIVER_VIA] = "HDA VIA VT82xx",
537 [AZX_DRIVER_SIS] = "HDA SIS966", 539 [AZX_DRIVER_SIS] = "HDA SIS966",
538 [AZX_DRIVER_ULI] = "HDA ULI M5461", 540 [AZX_DRIVER_ULI] = "HDA ULI M5461",
@@ -2678,6 +2680,8 @@ static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci,
2678 2680
2679 chip->single_cmd = single_cmd; 2681 chip->single_cmd = single_cmd;
2680 chip->snoop = hda_snoop; 2682 chip->snoop = hda_snoop;
2683 if (chip->driver_type == AZX_DRIVER_ATIHDMI_NS)
2684 chip->snoop = 0;
2681 2685
2682 if (bdl_pos_adj[dev] < 0) { 2686 if (bdl_pos_adj[dev] < 0) {
2683 switch (chip->driver_type) { 2687 switch (chip->driver_type) {
@@ -2776,6 +2780,7 @@ static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci,
2776 chip->capture_streams = ULI_NUM_CAPTURE; 2780 chip->capture_streams = ULI_NUM_CAPTURE;
2777 break; 2781 break;
2778 case AZX_DRIVER_ATIHDMI: 2782 case AZX_DRIVER_ATIHDMI:
2783 case AZX_DRIVER_ATIHDMI_NS:
2779 chip->playback_streams = ATIHDMI_NUM_PLAYBACK; 2784 chip->playback_streams = ATIHDMI_NUM_PLAYBACK;
2780 chip->capture_streams = ATIHDMI_NUM_CAPTURE; 2785 chip->capture_streams = ATIHDMI_NUM_CAPTURE;
2781 break; 2786 break;
@@ -3037,6 +3042,14 @@ static DEFINE_PCI_DEVICE_TABLE(azx_ids) = {
3037 .driver_data = AZX_DRIVER_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI }, 3042 .driver_data = AZX_DRIVER_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI },
3038 { PCI_DEVICE(0x1002, 0xaa48), 3043 { PCI_DEVICE(0x1002, 0xaa48),
3039 .driver_data = AZX_DRIVER_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI }, 3044 .driver_data = AZX_DRIVER_ATIHDMI | AZX_DCAPS_PRESET_ATI_HDMI },
3045 { PCI_DEVICE(0x1002, 0x9902),
3046 .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI },
3047 { PCI_DEVICE(0x1002, 0xaaa0),
3048 .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI },
3049 { PCI_DEVICE(0x1002, 0xaaa8),
3050 .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI },
3051 { PCI_DEVICE(0x1002, 0xaab0),
3052 .driver_data = AZX_DRIVER_ATIHDMI_NS | AZX_DCAPS_PRESET_ATI_HDMI },
3040 /* VIA VT8251/VT8237A */ 3053 /* VIA VT8251/VT8237A */
3041 { PCI_DEVICE(0x1106, 0x3288), 3054 { PCI_DEVICE(0x1106, 0x3288),
3042 .driver_data = AZX_DRIVER_VIA | AZX_DCAPS_POSFIX_VIA }, 3055 .driver_data = AZX_DRIVER_VIA | AZX_DCAPS_POSFIX_VIA },