Revert "ALSA: pcm: Use SG-buffer only when direct DMA is available"

This reverts commit 3ad796cbc3 ("ALSA: pcm: Use SG-buffer only when
direct DMA is available") also the modification commit 467fd0e82b
("ALSA: pcm: Fix build error on m68k and others").

Poking the DMA internal helper is a layer violation, so we should
avoid that.  Meanwhile the actual bug has been addressed by the
Kconfig fix in commit dbed452a07 ("dma-pool: decouple DMA_REMAP from
DMA_COHERENT_POOL"), so we can live without this hack.

Link: https://lore.kernel.org/r/20200717064130.22957-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Takashi Iwai 2020-07-17 08:41:30 +02:00
parent 52bedfbd45
commit 7d50b295c4

View File

@ -11,7 +11,6 @@
#include <linux/moduleparam.h>
#include <linux/vmalloc.h>
#include <linux/export.h>
#include <linux/dma-mapping.h>
#include <sound/core.h>
#include <sound/pcm.h>
#include <sound/info.h>
@ -41,19 +40,6 @@ static int do_alloc_pages(struct snd_card *card, int type, struct device *dev,
card->total_pcm_alloc_bytes + size > max_alloc_per_card)
return -ENOMEM;
#ifdef CONFIG_SND_DMA_SGBUF
if ((type == SNDRV_DMA_TYPE_DEV_SG || type == SNDRV_DMA_TYPE_DEV_UC_SG) &&
!dma_is_direct(get_dma_ops(dev))) {
/* mutate to continuous page allocation */
dev_dbg(dev, "Use continuous page allocator\n");
if (type == SNDRV_DMA_TYPE_DEV_SG)
type = SNDRV_DMA_TYPE_DEV;
else
type = SNDRV_DMA_TYPE_DEV_UC;
}
#endif /* CONFIG_SND_DMA_SGBUF */
err = snd_dma_alloc_pages(type, dev, size, dmab);
if (!err) {
mutex_lock(&card->memory_mutex);