From 1c68cf5a156ff0f7cd0407cded2185d1648168a8 Mon Sep 17 00:00:00 2001 From: Meng Wang Date: Wed, 13 Nov 2019 17:25:49 +0800 Subject: [PATCH] ASoC: msm: Add compressed TX and passthrough support There is use case that the HDMI input goes through MI2S TX interface to ADSP. Add compressed TX support for this use case. Add support for compressed bitstream passthrough over HDMI for DD/DDP contents. Use compressed driver to support passthrough. Change-Id: I92d0f301d44cc71c89de07cd60a4d20ce6f7913e Signed-off-by: Subhash Chandra Bose Naripeddy Signed-off-by: Banajit Goswami Signed-off-by: Sudheer Papothi Signed-off-by: Meng Wang --- include/uapi/sound/compress_offload.h | 13 +++++++++++++ include/uapi/sound/compress_params.h | 7 ++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/include/uapi/sound/compress_offload.h b/include/uapi/sound/compress_offload.h index 56a72badd90e..3cd93ab7b6e6 100644 --- a/include/uapi/sound/compress_offload.h +++ b/include/uapi/sound/compress_offload.h @@ -126,6 +126,19 @@ struct snd_compr_codec_caps { struct snd_codec_desc descriptor[MAX_NUM_CODEC_DESCRIPTORS]; } __attribute__((packed, aligned(4))); +#ifdef CONFIG_AUDIO_QGKI +/** + * struct snd_compr_audio_info: compressed input audio information + * @frame_size: legth of the encoded frame with valid data + * @reserved: reserved for furture use + */ +struct snd_compr_audio_info { + __u32 frame_size; + __u32 reserved[15]; +} __attribute__((packed, aligned(4))); + +#define SND_COMPR_AUDIO_INFO +#endif /** * enum sndrv_compress_encoder * @SNDRV_COMPRESS_ENCODER_PADDING: no of samples appended by the encoder at the diff --git a/include/uapi/sound/compress_params.h b/include/uapi/sound/compress_params.h index c325efd5d4bb..7a7096fb2035 100644 --- a/include/uapi/sound/compress_params.h +++ b/include/uapi/sound/compress_params.h @@ -391,6 +391,7 @@ struct snd_codec_desc { * @align: Block alignment in bytes of an audio sample. * Only required for PCM or IEC formats. * @options: encoder-specific settings + * @compr_passthr: compressed bitstream passthrough * @reserved: reserved for future use */ @@ -409,7 +410,8 @@ struct snd_codec { union snd_codec_options options; #ifdef CONFIG_AUDIO_QGKI __u32 flags; - __u32 reserved[2]; + __u32 compr_passthr; + __u32 reserved[1]; #else __u32 reserved[3]; #endif @@ -430,6 +432,9 @@ struct snd_codec_metadata { __u64 timestamp; __u32 reserved[4]; }; + +#define SND_CODEC_COMPRESS_PASSTHROUGH #endif + #endif