diff --git a/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c b/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c index 79f0a975c4c..55d50ede104 100644 --- a/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c +++ b/sound/soc/msm/qdsp6v2/msm-compress-q6-v2.c @@ -372,9 +372,11 @@ 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 = 2; + prtd->compr_cap.num_codecs = 4; prtd->compr_cap.codecs[0] = SND_AUDIOCODEC_MP3; prtd->compr_cap.codecs[1] = SND_AUDIOCODEC_AAC; + prtd->compr_cap.codecs[2] = SND_AUDIOCODEC_AC3; + prtd->compr_cap.codecs[3] = SND_AUDIOCODEC_EAC3; } static int msm_compr_send_media_format_block(struct snd_compr_stream *cstream, @@ -400,6 +402,10 @@ static int msm_compr_send_media_format_block(struct snd_compr_stream *cstream, if (ret < 0) pr_err("%s: CMD Format block failed\n", __func__); break; + case FORMAT_AC3: + break; + case FORMAT_EAC3: + break; default: pr_debug("%s, unsupported format, skip", __func__); break; @@ -685,6 +691,16 @@ static int msm_compr_set_params(struct snd_compr_stream *cstream, break; } + case SND_AUDIOCODEC_AC3: { + prtd->codec = FORMAT_AC3; + break; + } + + case SND_AUDIOCODEC_EAC3: { + prtd->codec = FORMAT_EAC3; + break; + } + default: pr_err("codec not supported, id =%d\n", params->codec.id); return -EINVAL; @@ -1226,6 +1242,10 @@ static int msm_compr_get_codec_caps(struct snd_compr_stream *cstream, (SND_AUDIOSTREAMFORMAT_MP4ADTS | SND_AUDIOSTREAMFORMAT_RAW); break; + case SND_AUDIOCODEC_AC3: + break; + case SND_AUDIOCODEC_EAC3: + break; default: pr_err("%s: Unsupported audio codec %d\n", __func__, codec->codec);