#include "sof-audio.h"
#include "sof-priv.h"
-struct sof_compr_stream {
- unsigned int copied_total;
- unsigned int sample_rate;
-};
-
static void sof_set_transferred_bytes(struct sof_compr_stream *sstream,
u64 host_pos, u64 buffer_size)
{
return ret;
}
+ sstream->posn_offset = sdev->stream_box.offset + ipc_params_reply.posn_offset;
sstream->sample_rate = params->codec.sample_rate;
spcm->prepared[cstream->direction] = true;
sof_mailbox_read(sdev, sdev->dsp_box.offset, p, sz);
} else {
struct snd_pcm_substream *substream = sps->substream;
- struct sof_pcm_stream *stream = substream->runtime->private_data;
-
+ struct snd_compr_stream *cstream = sps->cstream;
+ struct sof_pcm_stream *pstream;
+ struct sof_compr_stream *sstream;
+ size_t posn_offset;
+
+ if (substream) {
+ pstream = substream->runtime->private_data;
+ posn_offset = pstream->posn_offset;
+ } else {
+ sstream = cstream->runtime->private_data;
+ posn_offset = sstream->posn_offset;
+ }
/* The stream might already be closed */
- if (stream)
- sof_mailbox_read(sdev, stream->posn_offset, p, sz);
+ if (pstream || sstream)
+ sof_mailbox_read(sdev, posn_offset, p, sz);
}
}
EXPORT_SYMBOL(sof_ipc_msg_data);