summaryrefslogtreecommitdiff
path: root/sound/pci
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2015-10-27 16:21:51 +0300
committerZefan Li <lizefan@huawei.com>2016-10-26 18:15:26 +0300
commit1ce8fa16ce3b5e5d116f7a715c1fd82c4e2ae994 (patch)
tree8ac65ee84e405a85f92a3b79a8e5eebaae06ac31 /sound/pci
parent1be2ead7a8f779f2595afaa5523e7f83cd0dcf2b (diff)
downloadlinux-1ce8fa16ce3b5e5d116f7a715c1fd82c4e2ae994.tar.xz
ALSA: hda - Disable 64bit address for Creative HDA controllers
commit cadd16ea33a938d49aee99edd4758cc76048b399 upstream. We've had many reports that some Creative sound cards with CA0132 don't work well. Some reported that it starts working after reloading the module, while some reported it starts working when a 32bit kernel is used. All these facts seem implying that the chip fails to communicate when the buffer is located in 64bit address. This patch addresses these issues by just adding AZX_DCAPS_NO_64BIT flag to the corresponding PCI entries. I casually had a chance to test an SB Recon3D board, and indeed this seems helping. Although this hasn't been tested on all Creative devices, it's safer to assume that this restriction applies to the rest of them, too. So the flag is applied to all Creative entries. Signed-off-by: Takashi Iwai <tiwai@suse.de> [lizf: Backported to 3.4: drop the change to macro AZX_DCAPS_PRESET_CTHDA] Signed-off-by: Zefan Li <lizefan@huawei.com>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/hda_intel.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index f461737e4e6c..833d8355a92d 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -3144,11 +3144,13 @@ static DEFINE_PCI_DEVICE_TABLE(azx_ids) = {
.class = PCI_CLASS_MULTIMEDIA_HD_AUDIO << 8,
.class_mask = 0xffffff,
.driver_data = AZX_DRIVER_CTX | AZX_DCAPS_CTX_WORKAROUND |
+ AZX_DCAPS_NO_64BIT |
AZX_DCAPS_RIRB_PRE_DELAY | AZX_DCAPS_POSFIX_LPIB },
#else
/* this entry seems still valid -- i.e. without emu20kx chip */
{ PCI_DEVICE(0x1102, 0x0009),
.driver_data = AZX_DRIVER_CTX | AZX_DCAPS_CTX_WORKAROUND |
+ AZX_DCAPS_NO_64BIT |
AZX_DCAPS_RIRB_PRE_DELAY | AZX_DCAPS_POSFIX_LPIB },
#endif
/* Vortex86MX */