Patch "ALSA: hda - allow 40 bit DMA mask for NVidia devices" has been added to the 4.8-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
ALSA: hda - allow 40 bit DMA mask for NVidia devices
to the 4.8-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
alsa-hda-allow-40-bit-dma-mask-for-nvidia-devices.patch
and it can be found in the queue-4.8 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
3ab7511eafdd5c4f40d2832f09554478dfbea170Mon Sep 17 00:00:00 2001
From: Ard Biesheuvel <[email protected]>
Date: Mon, 17 Oct 2016 17:23:59 +0100
Subject: ALSA: hda - allow 40 bit DMA mask for NVidia devices
From: Ard Biesheuvel <[email protected]>
commit 3ab7511eafdd5c4f40d2832f09554478dfbea170 upstream.
Commit 49d9e77e72cf ("ALSA: hda - Fix system panic when DMA > 40 bits for Nvidia audio controllers") simply disabled any DMA exceeding 32 bits for NVidia devices, even though they are capable of performing DMA up to 40 bits. On some architectures (such as arm64), system memory is not guaranteed to be 32-bit addressable by PCI devices, and so this change prevents NVidia devices from working on platforms such as AMD Seattle.
Since the original commit already mentioned that up to 40 bits of DMA is supported, and given that the code has been updated in the meantime to support a 40 bit DMA mask on other devices, revert commit 49d9e77e72cf and explicitly set the DMA mask to 40 bits for NVidia devices.
--- sound/pci/hda/hda_intel.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
sound/pci/hda/hda_intel.c +5 -2
@@ -340,8 +340,7 @@ enum {/* quirks for Nvidia */ #define AZX_DCAPS_PRESET_NVIDIA \ - (AZX_DCAPS_NO_MSI | /*AZX_DCAPS_ALIGN_BUFSIZE |*/ \ -AZX_DCAPS_NO_64BIT | AZX_DCAPS_CORBRP_SELF_CLEAR |\ + (AZX_DCAPS_NO_MSI | AZX_DCAPS_CORBRP_SELF_CLEAR |\ AZX_DCAPS_SNOOP_TYPE(NVIDIA))#define AZX_DCAPS_PRESET_CTHDA \
@@ -1699,6 +1698,10 @@ static int azx_first_init(struct azx *ch } } +/* NVidia hardware normally only supports up to 40 bits of DMA */ +if (chip->pci->vendor ==PCI_VENDOR_ID_NVIDIA ) + dma_bits =40 ; +/* disable 64bit DMA address on some devices */ if (chip->driver_caps &AZX_DCAPS_NO_64BIT ) {dev_dbg (card->dev,"Disabling 64bit DMA\n" );
Patches currently in stable-queue which might be from [email protected] are
queue-4.8/alsa-hda-allow-40-bit-dma-mask-for-nvidia-devices.patch