diff options
author | Shengjiu Wang <shengjiu.wang@nxp.com> | 2019-06-05 10:46:25 +0800 |
---|---|---|
committer | Dong Aisheng <aisheng.dong@nxp.com> | 2019-11-25 15:48:43 +0800 |
commit | d1d594749325328e72dd61bff1dbd43108d17d27 (patch) | |
tree | ca91dea6996cadfde1fbc3a92233cdd87fa83156 /sound/soc/fsl/fsl_easrc.c | |
parent | afd67f633160e70924b22481d2c3a5d8f56c6e0b (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.c | 12 |
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*/ |