Commit 320dcc30 authored by Peer Chen's avatar Peer Chen Committed by Takashi Iwai

ALSA: hda_intel: enable snoop for nvidia HDA controller

Enable the snoop for nvidia hda controller to avoid data coherence issue.
Signed-off-by: default avatarPeer Chen <peerchen@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent f511b01c
...@@ -278,6 +278,9 @@ enum { ...@@ -278,6 +278,9 @@ enum {
/* Defines for Nvidia HDA support */ /* Defines for Nvidia HDA support */
#define NVIDIA_HDA_TRANSREG_ADDR 0x4e #define NVIDIA_HDA_TRANSREG_ADDR 0x4e
#define NVIDIA_HDA_ENABLE_COHBITS 0x0f #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 */ /* Defines for Intel SCH HDA snoop control */
#define INTEL_SCH_HDA_DEVC 0x78 #define INTEL_SCH_HDA_DEVC 0x78
...@@ -900,6 +903,12 @@ static void azx_init_pci(struct azx *chip) ...@@ -900,6 +903,12 @@ static void azx_init_pci(struct azx *chip)
update_pci_byte(chip->pci, update_pci_byte(chip->pci,
NVIDIA_HDA_TRANSREG_ADDR, NVIDIA_HDA_TRANSREG_ADDR,
0x0f, NVIDIA_HDA_ENABLE_COHBITS); 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; break;
case AZX_DRIVER_SCH: case AZX_DRIVER_SCH:
pci_read_config_word(chip->pci, INTEL_SCH_HDA_DEVC, &snoop); pci_read_config_word(chip->pci, INTEL_SCH_HDA_DEVC, &snoop);
......
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