Patch "ASoC: mediatek: disable buffer pre-allocation" has been added to the 5.10-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

    ASoC: mediatek: disable buffer pre-allocation

to the 5.10-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:
     asoc-mediatek-disable-buffer-pre-allocation.patch
and it can be found in the queue-5.10 subdirectory.

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



commit 1d5db51a9da31e69f248c15d84352e8d649384dc
Author: Chen-Yu Tsai <wenst@xxxxxxxxxxxx>
Date:   Thu Dec 19 18:53:02 2024 +0800

    ASoC: mediatek: disable buffer pre-allocation
    
    [ Upstream commit 32c9c06adb5b157ef259233775a063a43746d699 ]
    
    On Chromebooks based on Mediatek MT8195 or MT8188, the audio frontend
    (AFE) is limited to accessing a very small window (1 MiB) of memory,
    which is described as a reserved memory region in the device tree.
    
    On these two platforms, the maximum buffer size is given as 512 KiB.
    The MediaTek common code uses the same value for preallocations. This
    means that only the first two PCM substreams get preallocations, and
    then the whole space is exhausted, barring any other substreams from
    working. Since the substreams used are not always the first two, this
    means audio won't work correctly.
    
    This is observed on the MT8188 Geralt Chromebooks, on which the
    "mediatek,dai-link" property was dropped when it was upstreamed. That
    property causes the driver to only register the PCM substreams listed
    in the property, and in the order given.
    
    Instead of trying to compute an optimal value and figuring out which
    streams are used, simply disable preallocation. The PCM buffers are
    managed by the core and are allocated and released on the fly. There
    should be no impact to any of the other MediaTek platforms.
    
    Signed-off-by: Chen-Yu Tsai <wenst@xxxxxxxxxxxx>
    Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx>
    Link: https://patch.msgid.link/20241219105303.548437-1-wenst@xxxxxxxxxxxx
    Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/sound/soc/mediatek/common/mtk-afe-platform-driver.c b/sound/soc/mediatek/common/mtk-afe-platform-driver.c
index 01501d5747a7..52495c930ca3 100644
--- a/sound/soc/mediatek/common/mtk-afe-platform-driver.c
+++ b/sound/soc/mediatek/common/mtk-afe-platform-driver.c
@@ -120,8 +120,8 @@ int mtk_afe_pcm_new(struct snd_soc_component *component,
 	struct mtk_base_afe *afe = snd_soc_component_get_drvdata(component);
 
 	size = afe->mtk_afe_hardware->buffer_bytes_max;
-	snd_pcm_set_managed_buffer_all(pcm, SNDRV_DMA_TYPE_DEV,
-				       afe->dev, size, size);
+	snd_pcm_set_managed_buffer_all(pcm, SNDRV_DMA_TYPE_DEV, afe->dev, 0, size);
+
 	return 0;
 }
 EXPORT_SYMBOL_GPL(mtk_afe_pcm_new);




[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