aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorSeth Heasley <seth.heasley@intel.com>2010-02-22 20:31:09 -0500
committerTakashi Iwai <tiwai@suse.de>2010-02-23 02:15:37 -0500
commit32679f95cac3b1bdf27dce8b5273e06af186fd91 (patch)
treeb2d06c8ce9c2be38f4f1783a1c10f7430400693c /sound/pci
parentd01aecdf900574cf6be7c1c6114e708801126baf (diff)
ALSA: hda - enable snoop for Intel Cougar Point
This patch enables snoop, eliminating static during playback. This patch supersedes the previous Cougar Point audio patch. Signed-off-by: Seth Heasley <seth.heasley@intel.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/hda_intel.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index 22dcdc201ede..1adac8cc9592 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -448,6 +448,7 @@ struct azx {
448/* driver types */ 448/* driver types */
449enum { 449enum {
450 AZX_DRIVER_ICH, 450 AZX_DRIVER_ICH,
451 AZX_DRIVER_PCH,
451 AZX_DRIVER_SCH, 452 AZX_DRIVER_SCH,
452 AZX_DRIVER_ATI, 453 AZX_DRIVER_ATI,
453 AZX_DRIVER_ATIHDMI, 454 AZX_DRIVER_ATIHDMI,
@@ -462,6 +463,7 @@ enum {
462 463
463static char *driver_short_names[] __devinitdata = { 464static char *driver_short_names[] __devinitdata = {
464 [AZX_DRIVER_ICH] = "HDA Intel", 465 [AZX_DRIVER_ICH] = "HDA Intel",
466 [AZX_DRIVER_PCH] = "HDA Intel PCH",
465 [AZX_DRIVER_SCH] = "HDA Intel MID", 467 [AZX_DRIVER_SCH] = "HDA Intel MID",
466 [AZX_DRIVER_ATI] = "HDA ATI SB", 468 [AZX_DRIVER_ATI] = "HDA ATI SB",
467 [AZX_DRIVER_ATIHDMI] = "HDA ATI HDMI", 469 [AZX_DRIVER_ATIHDMI] = "HDA ATI HDMI",
@@ -1064,6 +1066,7 @@ static void azx_init_pci(struct azx *chip)
1064 0x01, NVIDIA_HDA_ENABLE_COHBIT); 1066 0x01, NVIDIA_HDA_ENABLE_COHBIT);
1065 break; 1067 break;
1066 case AZX_DRIVER_SCH: 1068 case AZX_DRIVER_SCH:
1069 case AZX_DRIVER_PCH:
1067 pci_read_config_word(chip->pci, INTEL_SCH_HDA_DEVC, &snoop); 1070 pci_read_config_word(chip->pci, INTEL_SCH_HDA_DEVC, &snoop);
1068 if (snoop & INTEL_SCH_HDA_DEVC_NOSNOOP) { 1071 if (snoop & INTEL_SCH_HDA_DEVC_NOSNOOP) {
1069 pci_write_config_word(chip->pci, INTEL_SCH_HDA_DEVC, 1072 pci_write_config_word(chip->pci, INTEL_SCH_HDA_DEVC,
@@ -2421,6 +2424,7 @@ static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci,
2421 if (bdl_pos_adj[dev] < 0) { 2424 if (bdl_pos_adj[dev] < 0) {
2422 switch (chip->driver_type) { 2425 switch (chip->driver_type) {
2423 case AZX_DRIVER_ICH: 2426 case AZX_DRIVER_ICH:
2427 case AZX_DRIVER_PCH:
2424 bdl_pos_adj[dev] = 1; 2428 bdl_pos_adj[dev] = 1;
2425 break; 2429 break;
2426 default: 2430 default:
@@ -2700,7 +2704,7 @@ static struct pci_device_id azx_ids[] = {
2700 /* PCH */ 2704 /* PCH */
2701 { PCI_DEVICE(0x8086, 0x3b56), .driver_data = AZX_DRIVER_ICH }, 2705 { PCI_DEVICE(0x8086, 0x3b56), .driver_data = AZX_DRIVER_ICH },
2702 /* CPT */ 2706 /* CPT */
2703 { PCI_DEVICE(0x8086, 0x1c20), .driver_data = AZX_DRIVER_ICH }, 2707 { PCI_DEVICE(0x8086, 0x1c20), .driver_data = AZX_DRIVER_PCH },
2704 /* SCH */ 2708 /* SCH */
2705 { PCI_DEVICE(0x8086, 0x811b), .driver_data = AZX_DRIVER_SCH }, 2709 { PCI_DEVICE(0x8086, 0x811b), .driver_data = AZX_DRIVER_SCH },
2706 /* ATI SB 450/600 */ 2710 /* ATI SB 450/600 */