summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2021-12-06 20:25:00 +0300
committerMark Brown <broonie@kernel.org>2021-12-06 20:25:00 +0300
commit6e2127dcb78367443a27efb09a6dd7155eff56ef (patch)
treee13c446684f699b0dc2052bd2c86470a0193170b
parentc736d64daa7f7aec9a9ddad9c4d56b891d3b2c2b (diff)
parent2da636247bb6f4fc3a9842ade04757790753fd2c (diff)
downloadlinux-6e2127dcb78367443a27efb09a6dd7155eff56ef.tar.xz
ASoC: mediatek: support memory-region assignment
Merge series from Trevor Wu <trevor.wu@mediatek.com>: This series of patches adds support for memory-region assignment, so the access region of DMA engine could be restricted. Patches are based on broonie tree "for-next" branch. Trevor Wu (2): ASoC: mediatek: mt8195: support reserved memory assignment dt-bindings: mediatek: mt8195: add memory-region property .../devicetree/bindings/sound/mt8195-afe-pcm.yaml | 8 ++++++++ sound/soc/mediatek/mt8195/mt8195-afe-pcm.c | 7 +++++++ 2 files changed, 15 insertions(+) -- 2.18.0
-rw-r--r--Documentation/devicetree/bindings/sound/mt8195-afe-pcm.yaml8
-rw-r--r--sound/soc/mediatek/mt8195/mt8195-afe-pcm.c7
2 files changed, 15 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/sound/mt8195-afe-pcm.yaml b/Documentation/devicetree/bindings/sound/mt8195-afe-pcm.yaml
index dcf790b053d2..6d0975b33d15 100644
--- a/Documentation/devicetree/bindings/sound/mt8195-afe-pcm.yaml
+++ b/Documentation/devicetree/bindings/sound/mt8195-afe-pcm.yaml
@@ -19,6 +19,12 @@ properties:
interrupts:
maxItems: 1
+ memory-region:
+ maxItems: 1
+ description: |
+ Shared memory region for AFE memif. A "shared-dma-pool".
+ See ../reserved-memory/reserved-memory.txt for details.
+
mediatek,topckgen:
$ref: "/schemas/types.yaml#/definitions/phandle"
description: The phandle of the mediatek topckgen controller
@@ -125,6 +131,7 @@ required:
- power-domains
- clocks
- clock-names
+ - memory-region
additionalProperties: false
@@ -139,6 +146,7 @@ examples:
interrupts = <GIC_SPI 822 IRQ_TYPE_LEVEL_HIGH 0>;
mediatek,topckgen = <&topckgen>;
power-domains = <&spm 7>; //MT8195_POWER_DOMAIN_AUDIO
+ memory-region = <&snd_dma_mem_reserved>;
clocks = <&clk26m>,
<&topckgen 163>, //CLK_TOP_APLL1
<&topckgen 166>, //CLK_TOP_APLL2
diff --git a/sound/soc/mediatek/mt8195/mt8195-afe-pcm.c b/sound/soc/mediatek/mt8195/mt8195-afe-pcm.c
index 2bb05a828e8d..8a6db24116e3 100644
--- a/sound/soc/mediatek/mt8195/mt8195-afe-pcm.c
+++ b/sound/soc/mediatek/mt8195/mt8195-afe-pcm.c
@@ -14,6 +14,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 "mt8195-afe-common.h"
#include "mt8195-afe-clk.h"
@@ -3061,6 +3062,12 @@ static int mt8195_afe_pcm_dev_probe(struct platform_device *pdev)
int i, irq_id, ret;
struct snd_soc_component *component;
+ ret = of_reserved_mem_device_init(dev);
+ if (ret) {
+ dev_err(dev, "failed to assign memory region: %d\n", ret);
+ return ret;
+ }
+
ret = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(33));
if (ret)
return ret;