ASoC: mediatek: mt8188: add memory-region support
authorTrevor Wu <trevor.wu@mediatek.com>
Thu, 29 Jun 2023 07:43:47 +0000 (15:43 +0800)
committerMark Brown <broonie@kernel.org>
Sun, 9 Jul 2023 21:47:29 +0000 (22:47 +0100)
In certain projects, it is necessary to utilize the reserved memory
region for audio dma. The patch takes into account the dts property
'memory-region', allowing for the specification of memory for afe memif
through device tree.

Signed-off-by: Trevor Wu <trevor.wu@mediatek.com>
Link: https://lore.kernel.org/r/20230629074348.21670-2-trevor.wu@mediatek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/mediatek/mt8188/mt8188-afe-pcm.c

index 6a24b339444b35652844aa8e1bbd96b847268225..5e14655c5617ed066f0c92d13592e9e15dabfa50 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/of.h>
 #include <linux/of_address.h>
 #include <linux/of_platform.h>
+#include <linux/of_reserved_mem.h>
 #include <linux/pm_runtime.h>
 #include <linux/soc/mediatek/infracfg.h>
 #include <linux/reset.h>
@@ -3193,11 +3194,15 @@ static int mt8188_afe_pcm_dev_probe(struct platform_device *pdev)
 {
        struct mtk_base_afe *afe;
        struct mt8188_afe_private *afe_priv;
-       struct device *dev;
+       struct device *dev = &pdev->dev;
        struct reset_control *rstc;
        struct regmap *infra_ao;
        int i, irq_id, ret;
 
+       ret = of_reserved_mem_device_init(dev);
+       if (ret)
+               dev_dbg(dev, "failed to assign memory region: %d\n", ret);
+
        ret = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(33));
        if (ret)
                return ret;
@@ -3213,7 +3218,6 @@ static int mt8188_afe_pcm_dev_probe(struct platform_device *pdev)
 
        afe_priv = afe->platform_priv;
        afe->dev = &pdev->dev;
-       dev = afe->dev;
 
        afe->base_addr = devm_platform_ioremap_resource(pdev, 0);
        if (IS_ERR(afe->base_addr))