summaryrefslogtreecommitdiff
path: root/include/sound
diff options
context:
space:
mode:
authorYC Hung <yc.hung@mediatek.com>2022-05-09 20:04:25 +0300
committerMark Brown <broonie@kernel.org>2022-05-10 16:01:54 +0300
commit2cb29da3f2c29e62311eec6446be92aa5f2c1620 (patch)
tree8966100f2fbc401d96828c05d090a3ae54ad748d /include/sound
parent9d62ba94266be3ddc864348a4df7e54f5562f0d5 (diff)
downloadlinux-2cb29da3f2c29e62311eec6446be92aa5f2c1620.tar.xz
ASoC: SOF: ipc: introduce cont_update_posn in sof_ipc_stream_params struct
The host stream position is updated when no_stream_position is set as 0. However current implementation updates host stream position only when report data is larger than or equal to host period size which is decided by the period size of host side. It maybe cause host stream position update not in time. Therefore this patch introduces another field "cont_update_posn", a boolean value aimed to update host stream position continuously and based on period size of pipeline. It can get better precise when need to update host stream position from firmware. Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com> Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> Signed-off-by: YC Hung <yc.hung@mediatek.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20220509170425.54640-1-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'include/sound')
-rw-r--r--include/sound/sof/stream.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/sound/sof/stream.h b/include/sound/sof/stream.h
index 58a0d49977d6..1db3bbc3e65d 100644
--- a/include/sound/sof/stream.h
+++ b/include/sound/sof/stream.h
@@ -85,8 +85,9 @@ struct sof_ipc_stream_params {
uint32_t host_period_bytes;
uint16_t no_stream_position; /**< 1 means don't send stream position */
+ uint8_t cont_update_posn; /**< 1 means continuous update stream position */
- uint16_t reserved[3];
+ uint8_t reserved[5];
uint16_t chmap[SOF_IPC_MAX_CHANNELS]; /**< channel map - SOF_CHMAP_ */
} __packed;