hal: add support for external FM volume control
APQ8084 uses an external chip for FM. Add support for
mixer control for external FM volume control.
Change-Id: I296d0b32fce632a296057e6d7b48698d9b0648fe
diff --git a/hal/audio_extn/fm.c b/hal/audio_extn/fm.c
index a4157f8..35b20b8 100644
--- a/hal/audio_extn/fm.c
+++ b/hal/audio_extn/fm.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2014, The Linux Foundation. All rights reserved.
* Not a Contribution.
*
* Copyright (C) 2013 The Android Open Source Project
@@ -64,7 +64,7 @@
{
int32_t vol, ret = 0;
struct mixer_ctl *ctl;
- const char *mixer_ctl_name = "Internal FM RX Volume";
+ const char *mixer_ctl_name = FM_RX_VOLUME;
ALOGV("%s: entry", __func__);
ALOGD("%s: (%f)\n", __func__, value);
@@ -92,7 +92,6 @@
return -EINVAL;
}
mixer_ctl_set_value(ctl, 0, vol);
-
ALOGV("%s: exit", __func__);
return ret;
}
diff --git a/hal/msm8916/platform.h b/hal/msm8916/platform.h
index f081912..f12697c 100644
--- a/hal/msm8916/platform.h
+++ b/hal/msm8916/platform.h
@@ -178,6 +178,8 @@
#define PLAYBACK_OFFLOAD_DEVICE 9
#define COMPRESS_VOIP_CALL_PCM_DEVICE 3
+/* Define macro for Internal FM volume mixer */
+#define FM_RX_VOLUME "Internal FM RX Volume"
#define LOWLATENCY_PCM_DEVICE 12
#define EC_REF_RX "I2S_RX"
diff --git a/hal/msm8960/platform.h b/hal/msm8960/platform.h
index e38d801..e326785 100644
--- a/hal/msm8960/platform.h
+++ b/hal/msm8960/platform.h
@@ -118,4 +118,7 @@
#define AUDIO_CAPTURE_PERIOD_DURATION_MSEC 20
#define AUDIO_CAPTURE_PERIOD_COUNT 2
+/* Define macro for Internal FM volume mixer */
+#define FM_RX_VOLUME "Internal FM RX Volume"
+
#endif // QCOM_AUDIO_PLATFORM_H
diff --git a/hal/msm8974/platform.h b/hal/msm8974/platform.h
index 3bd218c..209ee2b 100644
--- a/hal/msm8974/platform.h
+++ b/hal/msm8974/platform.h
@@ -245,6 +245,12 @@
#define HFP_ASM_RX_TX 24
#endif
+#ifdef PLATFORM_APQ8084
+#define FM_RX_VOLUME "Quat MI2S FM RX Volume"
+#else
+#define FM_RX_VOLUME "Internal FM RX Volume"
+#endif
+
#define LIB_CSD_CLIENT "libcsd-client.so"
/* CSD-CLIENT related functions */
typedef int (*init_t)(bool);