mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-09-22 09:34:56 +02:00
ASoC: mediatek: mt8192: Release reserved memory on cleanup
commit965e17ae67upstream. The MT8192 AFE probe calls of_reserved_mem_device_init() and falls back to preallocated buffers when no reserved memory region is available. When the reserved memory assignment succeeds, however, the driver never releases it. Register a devm cleanup action after a successful reserved-memory assignment so the assignment is released on probe failure and driver unbind. Fixes:ec4a10ca4a("ASoC: mediatek: use reserved memory or enable buffer pre-allocation") Cc: stable@vger.kernel.org Signed-off-by: Cássio Gabriel <cassiogabrielcontato@gmail.com> Link: https://patch.msgid.link/20260527-asoc-mt8192-probe-cleanup-v1-1-1bb834d05b72@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
ee781058cd
commit
989cbe8cc8
@@ -2171,6 +2171,11 @@ static const dai_register_cb dai_register_cbs[] = {
|
||||
mt8192_dai_memif_register,
|
||||
};
|
||||
|
||||
static void mt8192_afe_release_reserved_mem(void *data)
|
||||
{
|
||||
of_reserved_mem_device_release(data);
|
||||
}
|
||||
|
||||
static int mt8192_afe_pcm_dev_probe(struct platform_device *pdev)
|
||||
{
|
||||
struct mtk_base_afe *afe;
|
||||
@@ -2201,6 +2206,10 @@ static int mt8192_afe_pcm_dev_probe(struct platform_device *pdev)
|
||||
if (ret) {
|
||||
dev_info(dev, "no reserved memory found, pre-allocating buffers instead\n");
|
||||
afe->preallocate_buffers = true;
|
||||
} else {
|
||||
ret = devm_add_action_or_reset(dev, mt8192_afe_release_reserved_mem, dev);
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* init audio related clock */
|
||||
|
||||
Reference in New Issue
Block a user