Loading include/sound/apr_audio-v2.h +1 −0 Original line number Diff line number Diff line Loading @@ -5059,6 +5059,7 @@ struct asm_amrwbplus_fmt_blk_v2 { #define ASM_MEDIA_FMT_VORBIS 0x00010C15 #define ASM_MEDIA_FMT_APE 0x00012F32 #define ASM_MEDIA_FMT_DSD 0x00012F3E #define ASM_MEDIA_FMT_TRUEHD 0x00013215 /* Media format ID for adaptive transform acoustic coding. This * ID is used by the #ASM_STREAM_CMD_OPEN_WRITE_COMPRESSED command Loading include/sound/q6asm-v2.h +1 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ #define FORMAT_DSD 0x001d #define FORMAT_APTX 0x001e #define FORMAT_GEN_COMPR 0x001f #define FORMAT_TRUEHD 0x0020 #define ENCDEC_SBCBITRATE 0x0001 #define ENCDEC_IMMEDIATE_DECODE 0x0002 Loading include/uapi/sound/compress_params.h +2 −1 Original line number Diff line number Diff line Loading @@ -105,7 +105,8 @@ #define SND_AUDIOCODEC_APE ((__u32) 0x00000021) #define SND_AUDIOCODEC_DSD ((__u32) 0x00000022) #define SND_AUDIOCODEC_APTX ((__u32) 0x00000023) #define SND_AUDIOCODEC_MAX SND_AUDIOCODEC_APTX #define SND_AUDIOCODEC_TRUEHD ((__u32) 0x00000024) #define SND_AUDIOCODEC_MAX SND_AUDIOCODEC_TRUEHD /* * Profile and modes are listed with bit masks. This allows for a Loading sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c +16 −9 Original line number Diff line number Diff line Loading @@ -187,7 +187,7 @@ struct msm_compr_audio { const u32 compr_codecs[] = { SND_AUDIOCODEC_AC3, SND_AUDIOCODEC_EAC3, SND_AUDIOCODEC_DTS, SND_AUDIOCODEC_DSD}; SND_AUDIOCODEC_DSD, SND_AUDIOCODEC_TRUEHD}; struct query_audio_effect { uint32_t mod_id; Loading Loading @@ -910,7 +910,7 @@ static void populate_codec_list(struct msm_compr_audio *prtd) COMPR_PLAYBACK_MIN_NUM_FRAGMENTS; prtd->compr_cap.max_fragments = COMPR_PLAYBACK_MAX_NUM_FRAGMENTS; prtd->compr_cap.num_codecs = 15; prtd->compr_cap.num_codecs = 16; prtd->compr_cap.codecs[0] = SND_AUDIOCODEC_MP3; prtd->compr_cap.codecs[1] = SND_AUDIOCODEC_AAC; prtd->compr_cap.codecs[2] = SND_AUDIOCODEC_AC3; Loading @@ -926,6 +926,7 @@ static void populate_codec_list(struct msm_compr_audio *prtd) prtd->compr_cap.codecs[12] = SND_AUDIOCODEC_DTS; prtd->compr_cap.codecs[13] = SND_AUDIOCODEC_DSD; prtd->compr_cap.codecs[14] = SND_AUDIOCODEC_APTX; prtd->compr_cap.codecs[15] = SND_AUDIOCODEC_TRUEHD; } static int msm_compr_send_media_format_block(struct snd_compr_stream *cstream, Loading Loading @@ -1180,6 +1181,10 @@ static int msm_compr_send_media_format_block(struct snd_compr_stream *cstream, pr_err("%s: CMD DSD Format block failed ret %d\n", __func__, ret); break; case FORMAT_TRUEHD: pr_debug("SND_AUDIOCODEC_TRUEHD\n"); /* no media format block needed */ break; case FORMAT_APTX: pr_debug("SND_AUDIOCODEC_APTX\n"); memset(&aptx_cfg, 0x0, sizeof(struct aptx_dec_bt_addr_cfg)); Loading Loading @@ -1977,6 +1982,12 @@ static int msm_compr_set_params(struct snd_compr_stream *cstream, break; } case SND_AUDIOCODEC_TRUEHD: { pr_debug("%s: SND_AUDIOCODEC_TRUEHD\n", __func__); prtd->codec = FORMAT_TRUEHD; break; } case SND_AUDIOCODEC_APTX: { pr_debug("%s: SND_AUDIOCODEC_APTX\n", __func__); prtd->codec = FORMAT_APTX; Loading Loading @@ -2844,20 +2855,14 @@ static int msm_compr_get_codec_caps(struct snd_compr_stream *cstream, SND_AUDIOSTREAMFORMAT_RAW); break; case SND_AUDIOCODEC_AC3: break; case SND_AUDIOCODEC_EAC3: break; case SND_AUDIOCODEC_FLAC: break; case SND_AUDIOCODEC_VORBIS: break; case SND_AUDIOCODEC_ALAC: break; case SND_AUDIOCODEC_APE: break; case SND_AUDIOCODEC_DTS: break; case SND_AUDIOCODEC_DSD: case SND_AUDIOCODEC_TRUEHD: case SND_AUDIOCODEC_APTX: break; default: Loading Loading @@ -3328,6 +3333,7 @@ static int msm_compr_send_dec_params(struct snd_compr_stream *cstream, switch (prtd->codec) { case FORMAT_MP3: case FORMAT_MPEG4_AAC: case FORMAT_TRUEHD: case FORMAT_APTX: pr_debug("%s: no runtime parameters for codec: %d\n", __func__, prtd->codec); Loading Loading @@ -3395,6 +3401,7 @@ static int msm_compr_dec_params_put(struct snd_kcontrol *kcontrol, case FORMAT_APE: case FORMAT_DTS: case FORMAT_DSD: case FORMAT_TRUEHD: case FORMAT_APTX: pr_debug("%s: no runtime parameters for codec: %d\n", __func__, prtd->codec); Loading sound/soc/msm/qdsp6v2/q6asm.c +3 −0 Original line number Diff line number Diff line Loading @@ -2776,6 +2776,9 @@ static int __q6asm_open_write(struct audio_client *ac, uint32_t format, case FORMAT_GEN_COMPR: open.dec_fmt_id = ASM_MEDIA_FMT_GENERIC_COMPRESSED; break; case FORMAT_TRUEHD: open.dec_fmt_id = ASM_MEDIA_FMT_TRUEHD; break; default: pr_err("%s: Invalid format 0x%x\n", __func__, format); rc = -EINVAL; Loading Loading
include/sound/apr_audio-v2.h +1 −0 Original line number Diff line number Diff line Loading @@ -5059,6 +5059,7 @@ struct asm_amrwbplus_fmt_blk_v2 { #define ASM_MEDIA_FMT_VORBIS 0x00010C15 #define ASM_MEDIA_FMT_APE 0x00012F32 #define ASM_MEDIA_FMT_DSD 0x00012F3E #define ASM_MEDIA_FMT_TRUEHD 0x00013215 /* Media format ID for adaptive transform acoustic coding. This * ID is used by the #ASM_STREAM_CMD_OPEN_WRITE_COMPRESSED command Loading
include/sound/q6asm-v2.h +1 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,7 @@ #define FORMAT_DSD 0x001d #define FORMAT_APTX 0x001e #define FORMAT_GEN_COMPR 0x001f #define FORMAT_TRUEHD 0x0020 #define ENCDEC_SBCBITRATE 0x0001 #define ENCDEC_IMMEDIATE_DECODE 0x0002 Loading
include/uapi/sound/compress_params.h +2 −1 Original line number Diff line number Diff line Loading @@ -105,7 +105,8 @@ #define SND_AUDIOCODEC_APE ((__u32) 0x00000021) #define SND_AUDIOCODEC_DSD ((__u32) 0x00000022) #define SND_AUDIOCODEC_APTX ((__u32) 0x00000023) #define SND_AUDIOCODEC_MAX SND_AUDIOCODEC_APTX #define SND_AUDIOCODEC_TRUEHD ((__u32) 0x00000024) #define SND_AUDIOCODEC_MAX SND_AUDIOCODEC_TRUEHD /* * Profile and modes are listed with bit masks. This allows for a Loading
sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c +16 −9 Original line number Diff line number Diff line Loading @@ -187,7 +187,7 @@ struct msm_compr_audio { const u32 compr_codecs[] = { SND_AUDIOCODEC_AC3, SND_AUDIOCODEC_EAC3, SND_AUDIOCODEC_DTS, SND_AUDIOCODEC_DSD}; SND_AUDIOCODEC_DSD, SND_AUDIOCODEC_TRUEHD}; struct query_audio_effect { uint32_t mod_id; Loading Loading @@ -910,7 +910,7 @@ static void populate_codec_list(struct msm_compr_audio *prtd) COMPR_PLAYBACK_MIN_NUM_FRAGMENTS; prtd->compr_cap.max_fragments = COMPR_PLAYBACK_MAX_NUM_FRAGMENTS; prtd->compr_cap.num_codecs = 15; prtd->compr_cap.num_codecs = 16; prtd->compr_cap.codecs[0] = SND_AUDIOCODEC_MP3; prtd->compr_cap.codecs[1] = SND_AUDIOCODEC_AAC; prtd->compr_cap.codecs[2] = SND_AUDIOCODEC_AC3; Loading @@ -926,6 +926,7 @@ static void populate_codec_list(struct msm_compr_audio *prtd) prtd->compr_cap.codecs[12] = SND_AUDIOCODEC_DTS; prtd->compr_cap.codecs[13] = SND_AUDIOCODEC_DSD; prtd->compr_cap.codecs[14] = SND_AUDIOCODEC_APTX; prtd->compr_cap.codecs[15] = SND_AUDIOCODEC_TRUEHD; } static int msm_compr_send_media_format_block(struct snd_compr_stream *cstream, Loading Loading @@ -1180,6 +1181,10 @@ static int msm_compr_send_media_format_block(struct snd_compr_stream *cstream, pr_err("%s: CMD DSD Format block failed ret %d\n", __func__, ret); break; case FORMAT_TRUEHD: pr_debug("SND_AUDIOCODEC_TRUEHD\n"); /* no media format block needed */ break; case FORMAT_APTX: pr_debug("SND_AUDIOCODEC_APTX\n"); memset(&aptx_cfg, 0x0, sizeof(struct aptx_dec_bt_addr_cfg)); Loading Loading @@ -1977,6 +1982,12 @@ static int msm_compr_set_params(struct snd_compr_stream *cstream, break; } case SND_AUDIOCODEC_TRUEHD: { pr_debug("%s: SND_AUDIOCODEC_TRUEHD\n", __func__); prtd->codec = FORMAT_TRUEHD; break; } case SND_AUDIOCODEC_APTX: { pr_debug("%s: SND_AUDIOCODEC_APTX\n", __func__); prtd->codec = FORMAT_APTX; Loading Loading @@ -2844,20 +2855,14 @@ static int msm_compr_get_codec_caps(struct snd_compr_stream *cstream, SND_AUDIOSTREAMFORMAT_RAW); break; case SND_AUDIOCODEC_AC3: break; case SND_AUDIOCODEC_EAC3: break; case SND_AUDIOCODEC_FLAC: break; case SND_AUDIOCODEC_VORBIS: break; case SND_AUDIOCODEC_ALAC: break; case SND_AUDIOCODEC_APE: break; case SND_AUDIOCODEC_DTS: break; case SND_AUDIOCODEC_DSD: case SND_AUDIOCODEC_TRUEHD: case SND_AUDIOCODEC_APTX: break; default: Loading Loading @@ -3328,6 +3333,7 @@ static int msm_compr_send_dec_params(struct snd_compr_stream *cstream, switch (prtd->codec) { case FORMAT_MP3: case FORMAT_MPEG4_AAC: case FORMAT_TRUEHD: case FORMAT_APTX: pr_debug("%s: no runtime parameters for codec: %d\n", __func__, prtd->codec); Loading Loading @@ -3395,6 +3401,7 @@ static int msm_compr_dec_params_put(struct snd_kcontrol *kcontrol, case FORMAT_APE: case FORMAT_DTS: case FORMAT_DSD: case FORMAT_TRUEHD: case FORMAT_APTX: pr_debug("%s: no runtime parameters for codec: %d\n", __func__, prtd->codec); Loading
sound/soc/msm/qdsp6v2/q6asm.c +3 −0 Original line number Diff line number Diff line Loading @@ -2776,6 +2776,9 @@ static int __q6asm_open_write(struct audio_client *ac, uint32_t format, case FORMAT_GEN_COMPR: open.dec_fmt_id = ASM_MEDIA_FMT_GENERIC_COMPRESSED; break; case FORMAT_TRUEHD: open.dec_fmt_id = ASM_MEDIA_FMT_TRUEHD; break; default: pr_err("%s: Invalid format 0x%x\n", __func__, format); rc = -EINVAL; Loading