From 36fdfc2a9aa484dfceab077f10664e4e47330ede Mon Sep 17 00:00:00 2001 From: Amal Paul Date: Tue, 19 Feb 2013 20:27:49 -0800 Subject: [PATCH] msm: audio: qdsp6v2: Add support to configure ISO and ARIB coefficients Add support for configuring ISO or ARIB stereo mixing coefficients. This change introduces an IOCTL through which the user space can configure ISO or ARIB coefficients. Change-Id: Id08c859ce8bc18d7d0e41ce1ecb6a08f0794e067 Signed-off-by: Amal Paul --- arch/arm/mach-msm/qdsp6v2/audio_multi_aac.c | 19 +++++++++++++++++++ include/linux/msm_audio_aac.h | 3 +++ 2 files changed, 22 insertions(+) diff --git a/arch/arm/mach-msm/qdsp6v2/audio_multi_aac.c b/arch/arm/mach-msm/qdsp6v2/audio_multi_aac.c index 3a73666e81c..9c8525fd147 100644 --- a/arch/arm/mach-msm/qdsp6v2/audio_multi_aac.c +++ b/arch/arm/mach-msm/qdsp6v2/audio_multi_aac.c @@ -180,6 +180,25 @@ static long audio_ioctl(struct file *file, unsigned int cmd, unsigned long arg) } break; } + case AUDIO_SET_AAC_MIX_CONFIG: { + pr_debug("%s, AUDIO_SET_AAC_MIX_CONFIG", __func__); + if (copy_from_user(audio->codec_cfg, (void *)arg, + sizeof(unsigned long))) { + rc = -EFAULT; + break; + } else { + unsigned long *mix_coeff = + (unsigned long *)audio->codec_cfg; + pr_debug("%s, value of coeff = %lu", + __func__, *mix_coeff); + rc = q6asm_cfg_aac_sel_mix_coef(audio->ac, *mix_coeff); + if (rc < 0) + pr_err("%s asm aac_sel_mix_coef failed rc=%d\n", + __func__, rc); + break; + } + break; + } default: pr_debug("Calling utils ioctl\n"); rc = audio->codec_ioctl(file, cmd, arg); diff --git a/include/linux/msm_audio_aac.h b/include/linux/msm_audio_aac.h index 620e5abfc8d..e03c4f892b9 100644 --- a/include/linux/msm_audio_aac.h +++ b/include/linux/msm_audio_aac.h @@ -14,6 +14,9 @@ #define AUDIO_GET_AAC_ENC_CONFIG _IOR(AUDIO_IOCTL_MAGIC, \ (AUDIO_MAX_COMMON_IOCTL_NUM+4), struct msm_audio_aac_enc_config) +#define AUDIO_SET_AAC_MIX_CONFIG _IOR(AUDIO_IOCTL_MAGIC, \ + (AUDIO_MAX_COMMON_IOCTL_NUM+5), unsigned) + #define AUDIO_AAC_FORMAT_ADTS -1 #define AUDIO_AAC_FORMAT_RAW 0x0000 #define AUDIO_AAC_FORMAT_PSUEDO_RAW 0x0001