[Sound-open-firmware] [PATCH 1/2] dai: add stream_format to dai_data for codec stream
Keyon Jie
yang.jie at linux.intel.com
Thu Dec 29 10:29:00 CET 2016
Adding stream_format to indicate the stream format that the
dai buffer is using, which will be used for volume copy
functions mapping.
Signed-off-by: Keyon Jie <yang.jie at linux.intel.com>
---
src/audio/dai.c | 9 +++++++++
src/platform/baytrail/include/platform/platform.h | 3 +++
2 files changed, 12 insertions(+)
diff --git a/src/audio/dai.c b/src/audio/dai.c
index 7bbde08..64e4761 100644
--- a/src/audio/dai.c
+++ b/src/audio/dai.c
@@ -59,6 +59,7 @@ struct dai_data {
struct dma_sg_config config;
int direction;
+ uint32_t stream_format;
struct dai *ssp;
struct dma *dma;
@@ -162,6 +163,8 @@ static struct comp_dev *dai_new_ssp(uint32_t type, uint32_t index,
if (dd->chan < 0)
goto error;
+ dd->stream_format = PLATFORM_SSP_STREAM_FORMAT;
+
/* set up callback */
//if (dd->ssp->plat_data.flags & DAI_FLAGS_IRQ_CB)
dma_set_cb(dd->dma, dd->chan, DMA_IRQ_TYPE_LLIST, dai_dma_cb, dev);
@@ -217,6 +220,9 @@ static int dai_playback_params(struct comp_dev *dev,
dma_period_desc = &dma_buffer->desc.sink_period;
dma_buffer->params = *params;
+ /* set it to dai stream format, for volume func correct mapping */
+ dma_buffer->params.pcm.format = dd->stream_format;
+
if (list_is_empty(&config->elem_list)) {
/* set up cyclic list of DMA elems */
for (i = 0; i < dma_period_desc->number; i++) {
@@ -275,6 +281,9 @@ static int dai_capture_params(struct comp_dev *dev,
dma_period_desc = &dma_buffer->desc.source_period;
dma_buffer->params = *params;
+ /* set it to dai stream format, for volume func correct mapping */
+ dma_buffer->params.pcm.format = dd->stream_format;
+
if (list_is_empty(&config->elem_list)) {
/* set up cyclic list of DMA elems */
for (i = 0; i < dma_period_desc->number; i++) {
diff --git a/src/platform/baytrail/include/platform/platform.h b/src/platform/baytrail/include/platform/platform.h
index b1bfbf2..f86019d 100644
--- a/src/platform/baytrail/include/platform/platform.h
+++ b/src/platform/baytrail/include/platform/platform.h
@@ -38,6 +38,9 @@
/* default static pipeline SSP port - not used for dynamic pipes */
#define PLATFORM_SSP_PORT 2
+/* default SSP stream format - need aligned with codec setting*/
+#define PLATFORM_SSP_STREAM_FORMAT STREAM_FORMAT_S24_4LE
+
/* IPC Interrupt */
#define PLATFORM_IPC_INTERUPT IRQ_NUM_EXT_IA
--
2.5.0
More information about the Sound-open-firmware
mailing list