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>
This commit is contained in:
parent
479baf1cf7
commit
9da92fae03
2 changed files with 10 additions and 1 deletions
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue