summaryrefslogtreecommitdiff
path: root/sound/soc/fsl/fsl_easrc.c
diff options
context:
space:
mode:
authorShengjiu Wang <shengjiu.wang@nxp.com>2019-06-05 10:46:25 +0800
committerDong Aisheng <aisheng.dong@nxp.com>2019-11-25 15:48:43 +0800
commitd1d594749325328e72dd61bff1dbd43108d17d27 (patch)
treeca91dea6996cadfde1fbc3a92233cdd87fa83156 /sound/soc/fsl/fsl_easrc.c
parentafd67f633160e70924b22481d2c3a5d8f56c6e0b (diff)
MLK-21940-4: ASoC: fsl_easrc: Support the m2m function
EASRC M2M function is not able to put upstream due to its self-designed ioctl protocol. So make a single patch for it and make it merge into P2P driver as simply as possible. The patch can only be maintained internally unless some one designs a new protocol or implement the originally protocol by using some common approach provided by Linux Kernel. Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com> Reviewed-by: Viorel Suman <viorel.suman@nxp.com>
Diffstat (limited to 'sound/soc/fsl/fsl_easrc.c')
-rw-r--r--sound/soc/fsl/fsl_easrc.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/sound/soc/fsl/fsl_easrc.c b/sound/soc/fsl/fsl_easrc.c
index 074e0ba96bd3..859827517797 100644
--- a/sound/soc/fsl/fsl_easrc.c
+++ b/sound/soc/fsl/fsl_easrc.c
@@ -2133,6 +2133,8 @@ static const struct regmap_config fsl_easrc_regmap_config = {
.cache_type = REGCACHE_RBTREE,
};
+#include "fsl_easrc_m2m.c"
+
void easrc_dump_firmware(struct fsl_easrc *easrc)
{
struct device *dev = &easrc->pdev->dev;
@@ -2332,6 +2334,12 @@ static int fsl_easrc_probe(struct platform_device *pdev)
return ret;
}
+ ret = fsl_easrc_m2m_init(easrc);
+ if (ret) {
+ dev_err(&pdev->dev, "failed to init m2m device %d\n", ret);
+ return ret;
+ }
+
ret = of_property_read_string(np,
"fsl,easrc-ram-script-name",
&easrc->fw_name);
@@ -2445,6 +2453,8 @@ static int fsl_easrc_suspend(struct device *dev)
struct fsl_easrc *easrc = dev_get_drvdata(dev);
int ret;
+ fsl_easrc_m2m_suspend(easrc);
+
ret = pm_runtime_force_suspend(dev);
return ret;
@@ -2457,6 +2467,8 @@ static int fsl_easrc_resume(struct device *dev)
ret = pm_runtime_force_resume(dev);
+ fsl_easrc_m2m_resume(easrc);
+
return ret;
}
#endif /*CONFIG_PM_SLEEP*/