Commit 32679f95 authored by Seth Heasley's avatar Seth Heasley Committed by Takashi Iwai

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: default avatarSeth Heasley <seth.heasley@intel.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent d01aecdf
...@@ -448,6 +448,7 @@ struct azx { ...@@ -448,6 +448,7 @@ struct azx {
/* driver types */ /* driver types */
enum { enum {
AZX_DRIVER_ICH, AZX_DRIVER_ICH,
AZX_DRIVER_PCH,
AZX_DRIVER_SCH, AZX_DRIVER_SCH,
AZX_DRIVER_ATI, AZX_DRIVER_ATI,
AZX_DRIVER_ATIHDMI, AZX_DRIVER_ATIHDMI,
...@@ -462,6 +463,7 @@ enum { ...@@ -462,6 +463,7 @@ enum {
static char *driver_short_names[] __devinitdata = { static char *driver_short_names[] __devinitdata = {
[AZX_DRIVER_ICH] = "HDA Intel", [AZX_DRIVER_ICH] = "HDA Intel",
[AZX_DRIVER_PCH] = "HDA Intel PCH",
[AZX_DRIVER_SCH] = "HDA Intel MID", [AZX_DRIVER_SCH] = "HDA Intel MID",
[AZX_DRIVER_ATI] = "HDA ATI SB", [AZX_DRIVER_ATI] = "HDA ATI SB",
[AZX_DRIVER_ATIHDMI] = "HDA ATI HDMI", [AZX_DRIVER_ATIHDMI] = "HDA ATI HDMI",
...@@ -1064,6 +1066,7 @@ static void azx_init_pci(struct azx *chip) ...@@ -1064,6 +1066,7 @@ static void azx_init_pci(struct azx *chip)
0x01, NVIDIA_HDA_ENABLE_COHBIT); 0x01, NVIDIA_HDA_ENABLE_COHBIT);
break; break;
case AZX_DRIVER_SCH: case AZX_DRIVER_SCH:
case AZX_DRIVER_PCH:
pci_read_config_word(chip->pci, INTEL_SCH_HDA_DEVC, &snoop); pci_read_config_word(chip->pci, INTEL_SCH_HDA_DEVC, &snoop);
if (snoop & INTEL_SCH_HDA_DEVC_NOSNOOP) { if (snoop & INTEL_SCH_HDA_DEVC_NOSNOOP) {
pci_write_config_word(chip->pci, INTEL_SCH_HDA_DEVC, 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,6 +2424,7 @@ static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci,
if (bdl_pos_adj[dev] < 0) { if (bdl_pos_adj[dev] < 0) {
switch (chip->driver_type) { switch (chip->driver_type) {
case AZX_DRIVER_ICH: case AZX_DRIVER_ICH:
case AZX_DRIVER_PCH:
bdl_pos_adj[dev] = 1; bdl_pos_adj[dev] = 1;
break; break;
default: default:
...@@ -2700,7 +2704,7 @@ static struct pci_device_id azx_ids[] = { ...@@ -2700,7 +2704,7 @@ static struct pci_device_id azx_ids[] = {
/* PCH */ /* PCH */
{ PCI_DEVICE(0x8086, 0x3b56), .driver_data = AZX_DRIVER_ICH }, { PCI_DEVICE(0x8086, 0x3b56), .driver_data = AZX_DRIVER_ICH },
/* CPT */ /* CPT */
{ PCI_DEVICE(0x8086, 0x1c20), .driver_data = AZX_DRIVER_ICH }, { PCI_DEVICE(0x8086, 0x1c20), .driver_data = AZX_DRIVER_PCH },
/* SCH */ /* SCH */
{ PCI_DEVICE(0x8086, 0x811b), .driver_data = AZX_DRIVER_SCH }, { PCI_DEVICE(0x8086, 0x811b), .driver_data = AZX_DRIVER_SCH },
/* ATI SB 450/600 */ /* ATI SB 450/600 */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment