diff options
| author | Manish Dewangan <manish@codeaurora.org> | 2017-02-15 10:27:32 +0530 |
|---|---|---|
| committer | Manish Dewangan <manish@codeaurora.org> | 2017-02-27 19:10:11 +0530 |
| commit | 9da92fae0365f8962ef4ea48051edb4e6f16c2df (patch) | |
| tree | 6d74ba10d1ecfa39ddefed3bc5ea1b33be8f0c25 | |
| parent | 479baf1cf79281be0b59c5b672707bfed8ac7be8 (diff) | |
ASoC: msm: qdsp6v2: Support to set session start delay
Update compress driver to support session start delay.
Userspace can use this param to delay start of
playback session.
CRs-Fixed: 1112258
Change-Id: I0b31a4bae12f9f2b1f8a3e003909741529458772
Signed-off-by: Manish Dewangan <manish@codeaurora.org>
| -rw-r--r-- | include/uapi/sound/compress_offload.h | 3 | ||||
| -rw-r--r-- | sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/include/uapi/sound/compress_offload.h b/include/uapi/sound/compress_offload.h index f3f5d5634245..98b422ac7dcb 100644 --- a/include/uapi/sound/compress_offload.h +++ b/include/uapi/sound/compress_offload.h @@ -148,6 +148,7 @@ struct snd_compr_audio_info { * @SNDRV_COMPRESS_RENDER_MODE: dsp render mode (audio master or stc) * @SNDRV_COMPRESS_CLK_REC_MODE: clock recovery mode ( none or auto) * @SNDRV_COMPRESS_RENDER_WINDOW: render window + * @SNDRV_COMPRESS_START_DELAY: start delay */ enum sndrv_compress_encoder { SNDRV_COMPRESS_ENCODER_PADDING = 1, @@ -158,12 +159,14 @@ enum sndrv_compress_encoder { SNDRV_COMPRESS_RENDER_MODE = 6, SNDRV_COMPRESS_CLK_REC_MODE = 7, SNDRV_COMPRESS_RENDER_WINDOW = 8, + SNDRV_COMPRESS_START_DELAY = 9, }; #define SNDRV_COMPRESS_PATH_DELAY SNDRV_COMPRESS_PATH_DELAY #define SNDRV_COMPRESS_RENDER_MODE SNDRV_COMPRESS_RENDER_MODE #define SNDRV_COMPRESS_CLK_REC_MODE SNDRV_COMPRESS_CLK_REC_MODE #define SNDRV_COMPRESS_RENDER_WINDOW SNDRV_COMPRESS_RENDER_WINDOW +#define SNDRV_COMPRESS_START_DELAY SNDRV_COMPRESS_START_DELAY /** * struct snd_compr_metadata - compressed stream metadata diff --git a/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c b/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c index 0d1dc4133fc8..b4de66ae43c5 100644 --- a/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c +++ b/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c @@ -161,6 +161,8 @@ struct msm_compr_audio { uint32_t next_stream; uint32_t run_mode; + uint32_t start_delay_lsw; + uint32_t start_delay_msw; uint64_t marker_timestamp; @@ -2058,7 +2060,8 @@ static int msm_compr_trigger(struct snd_compr_stream *cstream, int cmd) msm_compr_read_buffer(prtd); } /* issue RUN command for the stream */ - q6asm_run_nowait(prtd->audio_client, prtd->run_mode, 0, 0); + q6asm_run_nowait(prtd->audio_client, prtd->run_mode, + prtd->start_delay_msw, prtd->start_delay_lsw); break; case SNDRV_PCM_TRIGGER_STOP: spin_lock_irqsave(&prtd->lock, flags); @@ -2839,6 +2842,9 @@ static int msm_compr_set_metadata(struct snd_compr_stream *cstream, metadata->value[1], metadata->value[2], metadata->value[3]); + } else if (metadata->key == SNDRV_COMPRESS_START_DELAY) { + prtd->start_delay_lsw = metadata->value[0]; + prtd->start_delay_msw = metadata->value[1]; } return 0; |
