ASoC: Intel: Pass stream start position to sst_byt_stream_start()
authorJarkko Nikula <jarkko.nikula@linux.intel.com>
Thu, 8 May 2014 13:07:23 +0000 (16:07 +0300)
committerMark Brown <broonie@linaro.org>
Mon, 12 May 2014 21:02:17 +0000 (22:02 +0100)
Stream start position will be needed in resume code. Prepare for it by
adding start offset argument to sst_byt_stream_start().

Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
sound/soc/intel/sst-baytrail-ipc.c
sound/soc/intel/sst-baytrail-ipc.h
sound/soc/intel/sst-baytrail-pcm.c

index 2e5095eeea3eb0d1e49432d5558440df722da463..8d888446317310e7427acf732fb69243516334d6 100644 (file)
@@ -663,7 +663,8 @@ static int sst_byt_stream_operations(struct sst_byt *byt, int type,
 }
 
 /* stream ALSA trigger operations */
-int sst_byt_stream_start(struct sst_byt *byt, struct sst_byt_stream *stream)
+int sst_byt_stream_start(struct sst_byt *byt, struct sst_byt_stream *stream,
+                        u32 start_offset)
 {
        struct sst_byt_start_stream_params start_stream;
        void *tx_msg;
@@ -671,7 +672,7 @@ int sst_byt_stream_start(struct sst_byt *byt, struct sst_byt_stream *stream)
        u64 header;
        int ret;
 
-       start_stream.byte_offset = 0;
+       start_stream.byte_offset = start_offset;
        header = sst_byt_header(IPC_IA_START_STREAM,
                                sizeof(start_stream) + sizeof(u32),
                                true, stream->str_id);
index f172b6440fa9265fb985717a49bd7a93ea491947..b643d9892f60523c9d67f594496a07dc60e20cdc 100644 (file)
@@ -53,7 +53,8 @@ int sst_byt_stream_commit(struct sst_byt *byt, struct sst_byt_stream *stream);
 int sst_byt_stream_free(struct sst_byt *byt, struct sst_byt_stream *stream);
 
 /* stream ALSA trigger operations */
-int sst_byt_stream_start(struct sst_byt *byt, struct sst_byt_stream *stream);
+int sst_byt_stream_start(struct sst_byt *byt, struct sst_byt_stream *stream,
+                        u32 start_offset);
 int sst_byt_stream_stop(struct sst_byt *byt, struct sst_byt_stream *stream);
 int sst_byt_stream_pause(struct sst_byt *byt, struct sst_byt_stream *stream);
 int sst_byt_stream_resume(struct sst_byt *byt, struct sst_byt_stream *stream);
index b8a89e9f753d40d7cb3842cc94d73d0bd80df235..e2c2540ffff4c2ae41a892267c7a54b56cb64276 100644 (file)
@@ -145,7 +145,7 @@ static int sst_byt_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
 
        switch (cmd) {
        case SNDRV_PCM_TRIGGER_START:
-               sst_byt_stream_start(byt, pcm_data->stream);
+               sst_byt_stream_start(byt, pcm_data->stream, 0);
                break;
        case SNDRV_PCM_TRIGGER_RESUME:
        case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: