diff options
author | Zhang Peng <peng.zhang_8@nxp.com> | 2020-10-28 18:56:56 +0800 |
---|---|---|
committer | Zhang Peng <peng.zhang_8@nxp.com> | 2020-10-29 13:30:14 +0800 |
commit | bf060ed25539248992405265a81bb9c9a47b76cd (patch) | |
tree | 5f3c2a5bc867523e5cba54910a15598a002c8c0e /sound/soc/fsl/fsl_dsp_platform_compress.c | |
parent | 8699702733b46cc827f260744578ddd2d571e60e (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.c | 33 |
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, |