Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b4763925 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ASoC: msm: qdsp6v2: Support to set session start delay" into msm-4.9

parents 8c3a7f81 51554278
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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
+7 −1
Original line number Diff line number Diff line
@@ -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;

@@ -2064,7 +2066,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);
@@ -2849,6 +2852,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;