• Takashi Iwai's avatar
    ALSA: memalloc: Let IOMMU handle S/G primarily · e469e204
    Takashi Iwai authored
    The recent changes in IOMMU made the non-contiguous page allocations
    as default, hence we can simply use the standard DMA allocation for
    the S/G pages as well.  In this patch, we simplify the code by trying
    the standard DMA allocation at first, instead of
    dma_alloc_noncontiguous().
    
    For the case without IOMMU, we still need to manage the S/G pages
    manually, so we keep the same fallback routines like before.
    
    The fallback types (SNDRV_DMA_TYPE_DEV_SG_FALLBACK & co) are dropped /
    folded into SNDRV_DMA_TYPE_DEV_SG and co now.  The allocation via the
    standard DMA call overrides the type accordingly, hence we don't have
    to have extra fallback types any longer.  OTOH, SNDRV_DMA_TYPE_DEV_SG
    is no longer an alias but became its own type back again.
    
    Note that this patch requires another prerequisite fix for memmalloc
    helper to use the DMA API for WC pages on x86.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=219087
    Link: https://patch.msgid.link/20240801064808.31205-2-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    e469e204
memalloc.c 23.5 KB