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 <amirpuri@codeaurora.org>
This commit is contained in:
Arun Mirpuri 2019-07-11 16:33:19 -07:00 • committed by Gerrit - the friendly Code Review server
commit eafed6ac4b

View file

@ -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)