From d99897f5bb23b5c6f05604dd54ab050902187046 Mon Sep 17 00:00:00 2001 From: Xiaoyu Ye Date: Mon, 13 Nov 2017 23:44:32 -0800 Subject: [PATCH] dsp: codecs: add support to enable multiaac 5.1 channel playback Channel number of multiaac audio decoder is hard-coded to two during the configuration. Modify it to accept different channel numbers to enable 5.1 channel playback. Change-Id: Ibc33ddc7f2ac810a6a34cdbd7a832e58531dfa4f Signed-off-by: Xiaoyu Ye --- dsp/codecs/audio_multi_aac.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/dsp/codecs/audio_multi_aac.c b/dsp/codecs/audio_multi_aac.c index c3e616aef423..a026c36af009 100644 --- a/dsp/codecs/audio_multi_aac.c +++ b/dsp/codecs/audio_multi_aac.c @@ -111,7 +111,14 @@ static long audio_ioctl_shared(struct file *file, unsigned int cmd, pr_err("cmd media format block failed\n"); break; } - rc = q6asm_set_encdec_chan_map(audio->ac, 2); + + /* Fall back to the default number of channels + * if aac_cfg.ch_cfg is not between 1-6 + */ + if ((aac_cfg.ch_cfg == 0) || (aac_cfg.ch_cfg > 6)) + aac_cfg.ch_cfg = 2; + + rc = q6asm_set_encdec_chan_map(audio->ac, aac_cfg.ch_cfg); if (rc < 0) { pr_err("%s: cmd set encdec_chan_map failed\n", __func__);