diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-4.19/950-0396-staging-bcm2835-audio-Use-coherent-device-buffers.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-4.19/950-0396-staging-bcm2835-audio-Use-coherent-device-buffers.patch | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/target/linux/bcm27xx/patches-4.19/950-0396-staging-bcm2835-audio-Use-coherent-device-buffers.patch b/target/linux/bcm27xx/patches-4.19/950-0396-staging-bcm2835-audio-Use-coherent-device-buffers.patch deleted file mode 100644 index dfd4b975f9..0000000000 --- a/target/linux/bcm27xx/patches-4.19/950-0396-staging-bcm2835-audio-Use-coherent-device-buffers.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 8a01a25d0ad7e9d06f64fddae871deb91c3988ac Mon Sep 17 00:00:00 2001 -From: Takashi Iwai <tiwai@suse.de> -Date: Tue, 4 Sep 2018 17:58:54 +0200 -Subject: [PATCH] staging: bcm2835-audio: Use coherent device buffers - -commit ad29c6e6cbf6f2af7362b043adad51a3be3d39c7 upstream. - -The memory access to the pages allocated with -SNDRV_DMA_TYPE_CONTINUOUS are basically non-coherent, and it becomes a -problem when a process accesses via mmap. - -For the more consistent access, use the device coherent memory, just -by replacing the call pattern in the allocator helpers. - -The only point we need to be careful for is the device object passed -there; since bcm2835-audio driver creates fake devices and each card -is created on top of that, we need to pass its parent device as the -real device object. - -Signed-off-by: Takashi Iwai <tiwai@suse.de> -Tested-by: Stefan Wahren <stefan.wahren@i2se.com> -Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> ---- - .../vc04_services/bcm2835-audio/bcm2835-pcm.c | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - ---- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c -+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835-pcm.c -@@ -345,8 +345,8 @@ int snd_bcm2835_new_pcm(struct bcm2835_c - - /* pre-allocation of buffers */ - /* NOTE: this may fail */ -- snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_CONTINUOUS, -- snd_dma_continuous_data(GFP_KERNEL), -+ snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, -+ chip->card->dev->parent, - snd_bcm2835_playback_hw.buffer_bytes_max, - snd_bcm2835_playback_hw.buffer_bytes_max); - -@@ -371,8 +371,8 @@ int snd_bcm2835_new_spdif_pcm(struct bcm - - /* pre-allocation of buffers */ - /* NOTE: this may fail */ -- snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_CONTINUOUS, -- snd_dma_continuous_data(GFP_KERNEL), -+ snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, -+ chip->card->dev->parent, - snd_bcm2835_playback_spdif_hw.buffer_bytes_max, snd_bcm2835_playback_spdif_hw.buffer_bytes_max); - - return 0; -@@ -404,8 +404,8 @@ int snd_bcm2835_new_simple_pcm(struct bc - - snd_pcm_lib_preallocate_pages_for_all( - pcm, -- SNDRV_DMA_TYPE_CONTINUOUS, -- snd_dma_continuous_data(GFP_KERNEL), -+ SNDRV_DMA_TYPE_DEV, -+ chip->card->dev->parent, - snd_bcm2835_playback_hw.buffer_bytes_max, - snd_bcm2835_playback_hw.buffer_bytes_max); - |