| From cadd16ea33a938d49aee99edd4758cc76048b399 Mon Sep 17 00:00:00 2001 |
| From: Takashi Iwai <tiwai@suse.de> |
| Date: Tue, 27 Oct 2015 14:21:51 +0100 |
| Subject: 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> |
| --- |
| sound/pci/hda/hda_intel.c | 2 ++ |
| 1 file changed, 2 insertions(+) |
| |
| --- 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 */ |