summaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorPeer Chen <peerchen@gmail.com>2008-08-20 16:43:24 -0700
committerTakashi Iwai <tiwai@suse.de>2008-08-21 10:46:46 +0200
commit320dcc30f498e0a8b282b14cf0feed1897ea3b34 (patch)
tree2a56e270d1249759243f9ed32d6b957cf33d80bf /sound/pci
parentf511b01c8e747b80635c8b2acd61431abcab4b29 (diff)
downloadlinux-320dcc30f498e0a8b282b14cf0feed1897ea3b34.tar.gz
linux-320dcc30f498e0a8b282b14cf0feed1897ea3b34.tar.bz2
linux-320dcc30f498e0a8b282b14cf0feed1897ea3b34.zip
ALSA: hda_intel: enable snoop for nvidia HDA controller
Enable the snoop for nvidia hda controller to avoid data coherence issue. Signed-off-by: Peer Chen <peerchen@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/hda_intel.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index a73d6ca0a906..1c53e337ecb2 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -278,6 +278,9 @@ enum {
/* Defines for Nvidia HDA support */
#define NVIDIA_HDA_TRANSREG_ADDR 0x4e
#define NVIDIA_HDA_ENABLE_COHBITS 0x0f
+#define NVIDIA_HDA_ISTRM_COH 0x4d
+#define NVIDIA_HDA_OSTRM_COH 0x4c
+#define NVIDIA_HDA_ENABLE_COHBIT 0x01
/* Defines for Intel SCH HDA snoop control */
#define INTEL_SCH_HDA_DEVC 0x78
@@ -900,6 +903,12 @@ static void azx_init_pci(struct azx *chip)
update_pci_byte(chip->pci,
NVIDIA_HDA_TRANSREG_ADDR,
0x0f, NVIDIA_HDA_ENABLE_COHBITS);
+ update_pci_byte(chip->pci,
+ NVIDIA_HDA_ISTRM_COH,
+ 0x01, NVIDIA_HDA_ENABLE_COHBIT);
+ update_pci_byte(chip->pci,
+ NVIDIA_HDA_OSTRM_COH,
+ 0x01, NVIDIA_HDA_ENABLE_COHBIT);
break;
case AZX_DRIVER_SCH:
pci_read_config_word(chip->pci, INTEL_SCH_HDA_DEVC, &snoop);