From eafed6ac4b22154e46f6fde9945f1ccbc5d4a8ec Mon Sep 17 00:00:00 2001 From: Arun Mirpuri Date: Thu, 11 Jul 2019 16:33:19 -0700 Subject: [PATCH] asoc: Add support for soft volume for mmap playback Send command for soft volume config during pcm prepare of mmap no irq stream Change-Id: Iacd4c95633d53ccfe78e8abb11baeedd8b854f26 Signed-off-by: Arun Mirpuri --- asoc/msm-pcm-q6-noirq.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/asoc/msm-pcm-q6-noirq.c b/asoc/msm-pcm-q6-noirq.c index 5b978311b0ff..6d1d30ddb8a2 100644 --- a/asoc/msm-pcm-q6-noirq.c +++ b/asoc/msm-pcm-q6-noirq.c @@ -600,13 +600,26 @@ static int msm_pcm_mmap(struct snd_pcm_substream *substream, static int msm_pcm_prepare(struct snd_pcm_substream *substream) { + int rc = 0; struct snd_pcm_runtime *runtime = substream->runtime; struct msm_audio *prtd = runtime->private_data; + struct asm_softvolume_params softvol = { + .period = SOFT_VOLUME_PERIOD, + .step = SOFT_VOLUME_STEP, + .rampingcurve = SOFT_VOLUME_CURVE_LINEAR, + }; if (!prtd || !prtd->mmap_flag) return -EIO; - return 0; + if (prtd->audio_client) { + rc = q6asm_set_softvolume_v2(prtd->audio_client, + &softvol, SOFT_VOLUME_INSTANCE_1); + if (rc < 0) + pr_err("%s: Send SoftVolume command failed rc=%d\n", + __func__, rc); + } + return rc; } static int msm_pcm_close(struct snd_pcm_substream *substream)