summaryrefslogtreecommitdiff
path: root/sound/soc/fsl/fsl_dsp_platform_compress.c
diff options
context:
space:
mode:
authorZhang Peng <peng.zhang_8@nxp.com>2020-10-28 18:56:56 +0800
committerZhang Peng <peng.zhang_8@nxp.com>2020-10-29 13:30:14 +0800
commitbf060ed25539248992405265a81bb9c9a47b76cd (patch)
tree5f3c2a5bc867523e5cba54910a15598a002c8c0e /sound/soc/fsl/fsl_dsp_platform_compress.c
parent8699702733b46cc827f260744578ddd2d571e60e (diff)
MLK-24929 ASoC: fsl_dsp: Support aac streams for cplay
Add support aac streams for cplay, set necessary parameters to comp. Signed-off-by: Zhang Peng <peng.zhang_8@nxp.com>
Diffstat (limited to 'sound/soc/fsl/fsl_dsp_platform_compress.c')
-rw-r--r--sound/soc/fsl/fsl_dsp_platform_compress.c33
1 files changed, 31 insertions, 2 deletions
diff --git a/sound/soc/fsl/fsl_dsp_platform_compress.c b/sound/soc/fsl/fsl_dsp_platform_compress.c
index b60dd776cfe7..439066efe49e 100644
--- a/sound/soc/fsl/fsl_dsp_platform_compress.c
+++ b/sound/soc/fsl/fsl_dsp_platform_compress.c
@@ -197,6 +197,35 @@ static int dsp_platform_compr_set_params(struct snd_compr_stream *cstream,
goto err_comp0_create;
}
+ if (drv->codec_type == CODEC_AAC_DEC) {
+ s_param.id = XA_STREAM_TYPE;
+ if (params->codec.format == SND_AUDIOSTREAMFORMAT_MP4ADTS || params->codec.format == SND_AUDIOSTREAMFORMAT_MP2ADTS)
+ s_param.mixData.value = XA_STREAM_ADTS;
+ else if (params->codec.format == SND_AUDIOSTREAMFORMAT_ADIF)
+ s_param.mixData.value = XA_STREAM_ADIF;
+ else
+ s_param.mixData.value = XA_STREAM_RAW;
+ ret = xaf_comp_set_config(drv->client, &drv->component[0], 1, &s_param);
+ if (ret) {
+ dev_err(component->dev,
+ "set param[cmd:0x%x|val:0x%x] error, err = %d\n",
+ s_param.id, s_param.mixData.value, ret);
+ goto err_comp0_create;
+ }
+
+ /* ...set depth before init codec */
+ s_param.id = XA_DEPTH;
+ s_param.mixData.value = 16;
+ ret = xaf_comp_set_config(drv->client, &drv->component[0], 1, &s_param);
+ if (ret) {
+ dev_err(component->dev,
+ "set param[cmd:0x%x|val:0x%x] error, err = %d\n",
+ s_param.id, s_param.mixData.value, ret);
+ goto err_comp0_create;
+ }
+ }
+
+
/* ...add component into pipeline */
ret = xaf_comp_add(&drv->pipeline, &drv->component[0]);
if (ret) {
@@ -666,8 +695,8 @@ static struct snd_compr_codec_caps caps_aac = {
.descriptor[1].profiles = 0,
.descriptor[1].modes = 0,
.descriptor[1].formats =
- (SND_AUDIOSTREAMFORMAT_MP4ADTS |
- SND_AUDIOSTREAMFORMAT_RAW),
+ (SND_AUDIOSTREAMFORMAT_MP4ADTS | SND_AUDIOSTREAMFORMAT_MP2ADTS |
+ SND_AUDIOSTREAMFORMAT_ADIF | SND_AUDIOSTREAMFORMAT_RAW),
};
static int dsp_platform_compr_get_codec_caps(struct snd_compr_stream *cstream,