diff options
author | Seth Heasley <seth.heasley@intel.com> | 2010-02-22 20:31:09 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2010-02-23 02:15:37 -0500 |
commit | 32679f95cac3b1bdf27dce8b5273e06af186fd91 (patch) | |
tree | b2d06c8ce9c2be38f4f1783a1c10f7430400693c /sound/pci/hda/hda_intel.c | |
parent | d01aecdf900574cf6be7c1c6114e708801126baf (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/hda/hda_intel.c')
-rw-r--r-- | sound/pci/hda/hda_intel.c | 6 |
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 */ |
449 | enum { | 449 | enum { |
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 | ||
463 | static char *driver_short_names[] __devinitdata = { | 464 | static 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 */ |