From b0fe92c09f7341e45fa660433ab41ae855330f61 Mon Sep 17 00:00:00 2001 From: Romed Schur Date: Thu, 4 Jul 2019 11:22:59 +0200 Subject: [PATCH] asoc: Add DSD over PCM support for csra66x0 codec Configuration added to support stereo DSD over PCM for csra66x0 codec via I2S interface. Change-Id: Ibed333e44961a9eb87ef69bfb1e302f5837357d9 Signed-off-by: Romed Schur --- asoc/msm-dai-q6-v2.c | 11 +++++++++-- include/dsp/apr_audio-v2.h | 2 ++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/asoc/msm-dai-q6-v2.c b/asoc/msm-dai-q6-v2.c index f09d9e1c56eb..7cb2c0b258c4 100644 --- a/asoc/msm-dai-q6-v2.c +++ b/asoc/msm-dai-q6-v2.c @@ -301,12 +301,19 @@ struct msm_dai_q6_tdm_dai_data { * 1: non-linear PCM * 2: PCM data in IEC 60968 container * 3: compressed data in IEC 60958 container + * 9: DSD over PCM (DoP) with marker byte */ static const char *const mi2s_format[] = { "LPCM", "Compr", "LPCM-60958", - "Compr-60958" + "Compr-60958", + "NA4", + "NA5", + "NA6", + "NA7", + "NA8", + "DSD_DOP_W_MARKER" }; static const char *const mi2s_vi_feed_mono[] = { @@ -315,7 +322,7 @@ static const char *const mi2s_vi_feed_mono[] = { }; static const struct soc_enum mi2s_config_enum[] = { - SOC_ENUM_SINGLE_EXT(4, mi2s_format), + SOC_ENUM_SINGLE_EXT(10, mi2s_format), SOC_ENUM_SINGLE_EXT(2, mi2s_vi_feed_mono), }; diff --git a/include/dsp/apr_audio-v2.h b/include/dsp/apr_audio-v2.h index a90cb05bcd6f..3468ca778f7d 100644 --- a/include/dsp/apr_audio-v2.h +++ b/include/dsp/apr_audio-v2.h @@ -2539,6 +2539,7 @@ struct afe_port_data_cmd_rt_proxy_port_read_v2 { #define AFE_NON_LINEAR_DATA_PACKED_60958 0x3 #define AFE_GENERIC_COMPRESSED 0x8 #define AFE_LINEAR_PCM_DATA_PACKED_16BIT 0X6 +#define AFE_DSD_DOP_W_MARKER_DATA 0x9 /* This param id is used to configure I2S interface */ #define AFE_PARAM_ID_I2S_CONFIG 0x0001020D @@ -2643,6 +2644,7 @@ struct afe_param_id_i2s_cfg { * - #NON_LINEAR_DATA * - #LINEAR_PCM_DATA_PACKED_IN_60958 * - #NON_LINEAR_DATA_PACKED_IN_60958 + * - #AFE_DSD_DOP_W_MARKER_DATA */ u16 reserved; /* This field must be set to zero. */