summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sound/soc/fsl/fsl_dsp_audiomix.c10
-rw-r--r--sound/soc/fsl/fsl_dsp_audiomix.h1
2 files changed, 11 insertions, 0 deletions
diff --git a/sound/soc/fsl/fsl_dsp_audiomix.c b/sound/soc/fsl/fsl_dsp_audiomix.c
index ba7730b54cd2..679550ae857d 100644
--- a/sound/soc/fsl/fsl_dsp_audiomix.c
+++ b/sound/soc/fsl/fsl_dsp_audiomix.c
@@ -26,6 +26,16 @@ void imx_audiomix_dsp_start(struct imx_audiomix_dsp_data *data)
}
EXPORT_SYMBOL(imx_audiomix_dsp_start);
+void imx_audiomix_dsp_stall(struct imx_audiomix_dsp_data *data)
+{
+ u32 val;
+
+ val = readl(data->base + AudioDSP_REG2);
+ val |= AudioDSP_REG2_RUNSTALL;
+ writel(val, data->base + AudioDSP_REG2);
+}
+EXPORT_SYMBOL(imx_audiomix_dsp_stall);
+
void imx_audiomix_dsp_pid_set(struct imx_audiomix_dsp_data *data, u32 val)
{
writel(val, data->base + AudioDSP_REG3);
diff --git a/sound/soc/fsl/fsl_dsp_audiomix.h b/sound/soc/fsl/fsl_dsp_audiomix.h
index 810efbaafff0..40fdf0d30dfa 100644
--- a/sound/soc/fsl/fsl_dsp_audiomix.h
+++ b/sound/soc/fsl/fsl_dsp_audiomix.h
@@ -17,6 +17,7 @@
struct imx_audiomix_dsp_data;
void imx_audiomix_dsp_start(struct imx_audiomix_dsp_data *data);
+void imx_audiomix_dsp_stall(struct imx_audiomix_dsp_data *data);
void imx_audiomix_dsp_pid_set(struct imx_audiomix_dsp_data *data, u32 val);
bool imx_audiomix_dsp_reset(struct imx_audiomix_dsp_data *data);