Patch "ALSA: sh: Use standard helper for buffer accesses" has been added to the 6.6-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    ALSA: sh: Use standard helper for buffer accesses

to the 6.6-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     alsa-sh-use-standard-helper-for-buffer-accesses.patch
and it can be found in the queue-6.6 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit be4c3ec5c576b2a4a33efdedbfd08d277cf54776
Author: Takashi Iwai <tiwai@xxxxxxx>
Date:   Thu Nov 28 11:49:38 2024 +0100

    ALSA: sh: Use standard helper for buffer accesses
    
    [ Upstream commit 9b5f8ee43e48c25fbe1a10163ec04343d750acd0 ]
    
    The SH DAC audio driver uses the kmalloc'ed buffer as the main PCM
    buffer, and the data is transferred via hrtimer callbacks manually
    from there to the hardware.  Meanwhile, some of its code are written
    as if the buffer is on iomem and use the special helpers for the iomem
    (e.g. copy_from_iter_toio() or memset_io()).  Those are rather useless
    and the standard helpers should be used.
    
    Similarly, the PCM mmap callback is set to a special one with
    snd_pcm_lib_mmap_iomem, but this is also nonsense, because SH
    architecture doesn't support this function, hence it leads just to
    NULL -- the fallback to the standard helper.
    
    This patch replaces those special setups with the standard ones.
    
    Reported-by: kernel test robot <lkp@xxxxxxxxx>
    Closes: https://lore.kernel.org/oe-kbuild-all/202411281337.I4M07b7i-lkp@xxxxxxxxx/
    Link: https://patch.msgid.link/20241128104939.13755-1-tiwai@xxxxxxx
    Signed-off-by: Takashi Iwai <tiwai@xxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/sound/sh/sh_dac_audio.c b/sound/sh/sh_dac_audio.c
index 95ba3abd4e47..36a973d1c46d 100644
--- a/sound/sh/sh_dac_audio.c
+++ b/sound/sh/sh_dac_audio.c
@@ -163,7 +163,7 @@ static int snd_sh_dac_pcm_copy(struct snd_pcm_substream *substream,
 	/* channel is not used (interleaved data) */
 	struct snd_sh_dac *chip = snd_pcm_substream_chip(substream);
 
-	if (copy_from_iter_toio(chip->data_buffer + pos, src, count))
+	if (copy_from_iter(chip->data_buffer + pos, src, count) != count)
 		return -EFAULT;
 	chip->buffer_end = chip->data_buffer + pos + count;
 
@@ -182,7 +182,7 @@ static int snd_sh_dac_pcm_silence(struct snd_pcm_substream *substream,
 	/* channel is not used (interleaved data) */
 	struct snd_sh_dac *chip = snd_pcm_substream_chip(substream);
 
-	memset_io(chip->data_buffer + pos, 0, count);
+	memset(chip->data_buffer + pos, 0, count);
 	chip->buffer_end = chip->data_buffer + pos + count;
 
 	if (chip->empty) {
@@ -211,7 +211,6 @@ static const struct snd_pcm_ops snd_sh_dac_pcm_ops = {
 	.pointer	= snd_sh_dac_pcm_pointer,
 	.copy		= snd_sh_dac_pcm_copy,
 	.fill_silence	= snd_sh_dac_pcm_silence,
-	.mmap		= snd_pcm_lib_mmap_iomem,
 };
 
 static int snd_sh_dac_pcm(struct snd_sh_dac *chip, int device)




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux