summaryrefslogtreecommitdiff
path: root/libre/linux-libre/0006-ALSA-pci-cs46xx-Fix-set-up-buffer-type-properly.patch
diff options
context:
space:
mode:
authorDavid P <megver83@parabola.nu>2022-01-04 16:50:44 -0500
committerDavid P <megver83@parabola.nu>2022-01-04 16:50:44 -0500
commit14e4651135a22e5c704d1d61b537478fc1e69f74 (patch)
treef4d6671868915b0496117603bd609545f9f8bf43 /libre/linux-libre/0006-ALSA-pci-cs46xx-Fix-set-up-buffer-type-properly.patch
parentad77e04cf7ce5e6d2d4123b8c4ee260231216a9c (diff)
downloadabslibre-14e4651135a22e5c704d1d61b537478fc1e69f74.tar.gz
abslibre-14e4651135a22e5c704d1d61b537478fc1e69f74.tar.bz2
abslibre-14e4651135a22e5c704d1d61b537478fc1e69f74.zip
updpkg: libre/linux-libre 5.15.12-1
Signed-off-by: David P <megver83@parabola.nu>
Diffstat (limited to 'libre/linux-libre/0006-ALSA-pci-cs46xx-Fix-set-up-buffer-type-properly.patch')
-rw-r--r--libre/linux-libre/0006-ALSA-pci-cs46xx-Fix-set-up-buffer-type-properly.patch95
1 files changed, 0 insertions, 95 deletions
diff --git a/libre/linux-libre/0006-ALSA-pci-cs46xx-Fix-set-up-buffer-type-properly.patch b/libre/linux-libre/0006-ALSA-pci-cs46xx-Fix-set-up-buffer-type-properly.patch
deleted file mode 100644
index 0305e7062..000000000
--- a/libre/linux-libre/0006-ALSA-pci-cs46xx-Fix-set-up-buffer-type-properly.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From b5ed7b38f5551c5dfca87ab29d679f3d6d327557 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai@suse.de>
-Date: Mon, 9 Aug 2021 09:18:29 +0200
-Subject: [PATCH 6/6] ALSA: pci: cs46xx: Fix set up buffer type properly
-
-CS46xx driver switches the buffer depending on the number of periods,
-and in some cases it switches to the own buffer without updating the
-buffer type properly. This may cause a problem with the mmap on
-exotic architectures that require the own mmap call for the coherent
-DMA buffer.
-
-This patch addresses the potential breakage by replacing the buffer
-setup with the proper macro. It also simplifies the source code,
-too.
-
-Signed-off-by: Takashi Iwai <tiwai@suse.de>
-Fixes: https://bugs.archlinux.org/task/72059
----
- sound/pci/cs46xx/cs46xx_lib.c | 30 ++++++++----------------------
- 1 file changed, 8 insertions(+), 22 deletions(-)
-
-diff --git a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c
-index 1e1eb17f8e07..d43927dcd61e 100644
---- a/sound/pci/cs46xx/cs46xx_lib.c
-+++ b/sound/pci/cs46xx/cs46xx_lib.c
-@@ -1121,9 +1121,7 @@ static int snd_cs46xx_playback_hw_params(struct snd_pcm_substream *substream,
- if (params_periods(hw_params) == CS46XX_FRAGS) {
- if (runtime->dma_area != cpcm->hw_buf.area)
- snd_pcm_lib_free_pages(substream);
-- runtime->dma_area = cpcm->hw_buf.area;
-- runtime->dma_addr = cpcm->hw_buf.addr;
-- runtime->dma_bytes = cpcm->hw_buf.bytes;
-+ snd_pcm_set_runtime_buffer(substream, &cpcm->hw_buf);
-
-
- #ifdef CONFIG_SND_CS46XX_NEW_DSP
-@@ -1143,11 +1141,8 @@ static int snd_cs46xx_playback_hw_params(struct snd_pcm_substream *substream,
- #endif
-
- } else {
-- if (runtime->dma_area == cpcm->hw_buf.area) {
-- runtime->dma_area = NULL;
-- runtime->dma_addr = 0;
-- runtime->dma_bytes = 0;
-- }
-+ if (runtime->dma_area == cpcm->hw_buf.area)
-+ snd_pcm_set_runtime_buffer(substream, NULL);
- err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params));
- if (err < 0) {
- #ifdef CONFIG_SND_CS46XX_NEW_DSP
-@@ -1196,9 +1191,7 @@ static int snd_cs46xx_playback_hw_free(struct snd_pcm_substream *substream)
- if (runtime->dma_area != cpcm->hw_buf.area)
- snd_pcm_lib_free_pages(substream);
-
-- runtime->dma_area = NULL;
-- runtime->dma_addr = 0;
-- runtime->dma_bytes = 0;
-+ snd_pcm_set_runtime_buffer(substream, NULL);
-
- return 0;
- }
-@@ -1287,16 +1280,11 @@ static int snd_cs46xx_capture_hw_params(struct snd_pcm_substream *substream,
- if (runtime->periods == CS46XX_FRAGS) {
- if (runtime->dma_area != chip->capt.hw_buf.area)
- snd_pcm_lib_free_pages(substream);
-- runtime->dma_area = chip->capt.hw_buf.area;
-- runtime->dma_addr = chip->capt.hw_buf.addr;
-- runtime->dma_bytes = chip->capt.hw_buf.bytes;
-+ snd_pcm_set_runtime_buffer(substream, &chip->capt.hw_buf);
- substream->ops = &snd_cs46xx_capture_ops;
- } else {
-- if (runtime->dma_area == chip->capt.hw_buf.area) {
-- runtime->dma_area = NULL;
-- runtime->dma_addr = 0;
-- runtime->dma_bytes = 0;
-- }
-+ if (runtime->dma_area == chip->capt.hw_buf.area)
-+ snd_pcm_set_runtime_buffer(substream, NULL);
- err = snd_pcm_lib_malloc_pages(substream, params_buffer_bytes(hw_params));
- if (err < 0)
- return err;
-@@ -1313,9 +1301,7 @@ static int snd_cs46xx_capture_hw_free(struct snd_pcm_substream *substream)
-
- if (runtime->dma_area != chip->capt.hw_buf.area)
- snd_pcm_lib_free_pages(substream);
-- runtime->dma_area = NULL;
-- runtime->dma_addr = 0;
-- runtime->dma_bytes = 0;
-+ snd_pcm_set_runtime_buffer(substream, NULL);
-
- return 0;
- }
---
-2.33.0
-