ALSA: hda: Set max DMA segment size
authorTakashi Iwai <tiwai@suse.de>
Tue, 15 Feb 2022 13:27:54 +0000 (14:27 +0100)
committerTakashi Iwai <tiwai@suse.de>
Thu, 17 Feb 2022 08:38:45 +0000 (09:38 +0100)
The recent code refactoring to use the standard DMA helper requires
the max DMA segment size setup for SG list management. Without it,
the kernel may spew warnings when a large buffer is allocated.

This patch sets up dma_set_max_seg_size() for avoiding spurious
warnings.

Fixes: 2c95b92ecd92 ("ALSA: memalloc: Unify x86 SG-buffer handling (take#3)")
Cc: <stable@vger.kernel.org>
BugLink: https://github.com/thesofproject/linux/issues/3430
Link: https://lore.kernel.org/r/20220215132756.31236-2-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_intel.c

index 917ad9d..572ff0d 100644 (file)
@@ -1941,6 +1941,7 @@ static int azx_first_init(struct azx *chip)
                dma_bits = 32;
        if (dma_set_mask_and_coherent(&pci->dev, DMA_BIT_MASK(dma_bits)))
                dma_set_mask_and_coherent(&pci->dev, DMA_BIT_MASK(32));
+       dma_set_max_seg_size(&pci->dev, UINT_MAX);
 
        /* read number of streams from GCAP register instead of using
         * hardcoded value