Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6250b9ce authored by Takashi Iwai's avatar Takashi Iwai
Browse files

Merge branch 'topic/noncached-mmap' into topic/misc

parents 8b296c8f c32d977b
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -1022,6 +1022,10 @@ int snd_pcm_lib_mmap_iomem(struct snd_pcm_substream *substream, struct vm_area_s
#define snd_pcm_lib_mmap_iomem	NULL
#endif

int snd_pcm_lib_mmap_noncached(struct snd_pcm_substream *substream,
			       struct vm_area_struct *area);
#define snd_pcm_lib_mmap_vmalloc	snd_pcm_lib_mmap_noncached

static inline void snd_pcm_limit_isa_dma_size(int dma, size_t *max)
{
	*max = dma < 4 ? 64 * 1024 : 128 * 1024;
+9 −2
Original line number Diff line number Diff line
@@ -3165,9 +3165,7 @@ int snd_pcm_lib_mmap_iomem(struct snd_pcm_substream *substream,
	long size;
	unsigned long offset;

#ifdef pgprot_noncached
	area->vm_page_prot = pgprot_noncached(area->vm_page_prot);
#endif
	area->vm_flags |= VM_IO;
	size = area->vm_end - area->vm_start;
	offset = area->vm_pgoff << PAGE_SHIFT;
@@ -3181,6 +3179,15 @@ int snd_pcm_lib_mmap_iomem(struct snd_pcm_substream *substream,
EXPORT_SYMBOL(snd_pcm_lib_mmap_iomem);
#endif /* SNDRV_PCM_INFO_MMAP */

/* mmap callback with pgprot_noncached */
int snd_pcm_lib_mmap_noncached(struct snd_pcm_substream *substream,
			       struct vm_area_struct *area)
{
	area->vm_page_prot = pgprot_noncached(area->vm_page_prot);
	return snd_pcm_default_mmap(substream, area);
}
EXPORT_SYMBOL(snd_pcm_lib_mmap_noncached);

/*
 * mmap DMA buffer
 */
+2 −0
Original line number Diff line number Diff line
@@ -905,6 +905,7 @@ static struct snd_pcm_ops vx_pcm_playback_ops = {
	.trigger =	vx_pcm_trigger,
	.pointer =	vx_pcm_playback_pointer,
	.page =		snd_pcm_lib_get_vmalloc_page,
	.mmap =		snd_pcm_lib_mmap_vmalloc,
};


@@ -1125,6 +1126,7 @@ static struct snd_pcm_ops vx_pcm_capture_ops = {
	.trigger =	vx_pcm_trigger,
	.pointer =	vx_pcm_capture_pointer,
	.page =		snd_pcm_lib_get_vmalloc_page,
	.mmap =		snd_pcm_lib_mmap_vmalloc,
};


+3 −0
Original line number Diff line number Diff line
@@ -691,6 +691,7 @@ static struct snd_pcm_ops snd_sgio2audio_playback1_ops = {
	.trigger =     snd_sgio2audio_pcm_trigger,
	.pointer =     snd_sgio2audio_pcm_pointer,
	.page =        snd_pcm_lib_get_vmalloc_page,
	.mmap =        snd_pcm_lib_mmap_vmalloc,
};

static struct snd_pcm_ops snd_sgio2audio_playback2_ops = {
@@ -703,6 +704,7 @@ static struct snd_pcm_ops snd_sgio2audio_playback2_ops = {
	.trigger =     snd_sgio2audio_pcm_trigger,
	.pointer =     snd_sgio2audio_pcm_pointer,
	.page =        snd_pcm_lib_get_vmalloc_page,
	.mmap =        snd_pcm_lib_mmap_vmalloc,
};

static struct snd_pcm_ops snd_sgio2audio_capture_ops = {
@@ -715,6 +717,7 @@ static struct snd_pcm_ops snd_sgio2audio_capture_ops = {
	.trigger =     snd_sgio2audio_pcm_trigger,
	.pointer =     snd_sgio2audio_pcm_pointer,
	.page =        snd_pcm_lib_get_vmalloc_page,
	.mmap =        snd_pcm_lib_mmap_vmalloc,
};

/*
+1 −0
Original line number Diff line number Diff line
@@ -277,6 +277,7 @@ static struct snd_pcm_ops pdacf_pcm_capture_ops = {
	.trigger =	pdacf_pcm_trigger,
	.pointer =	pdacf_pcm_capture_pointer,
	.page =		snd_pcm_lib_get_vmalloc_page,
	.mmap =		snd_pcm_lib_mmap_vmalloc,
};


Loading