summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <steve@cyngn.com>2015-02-13 00:31:42 +0100
committerArne Coucheron <arco68@gmail.com>2015-02-13 00:31:42 +0100
commitce4d7b9d190eb5cb5cbac3690a94195c6c5c5ea7 (patch)
treee803c6891eae51e24e502bc52c50d69f4f4db0e5
parent5cc33da410569e3f4b25b0e699fedc7f54fdba24 (diff)
downloadhardware_qcom_audio-stable/cm-12.0-caf-8960-YNG1T.tar.gz
hardware_qcom_audio-stable/cm-12.0-caf-8960-YNG1T.tar.bz2
hardware_qcom_audio-stable/cm-12.0-caf-8960-YNG1T.zip
hal: Make use of hwdep calibration optionalstable/cm-12.0-caf-8960-YNG1TAstable/cm-12.0-caf-8960-YNG1T
* Not all devices can use this, as it requires a very new ACDB loader and kernel-space support. Disable it by default until devices catch up. Change-Id: I27c920cb587a804ee6ded5d763fe194dfb210755
-rw-r--r--legacy/alsa_sound/Android.mk4
-rw-r--r--legacy/alsa_sound/AudioHardwareALSA.cpp13
-rw-r--r--legacy/alsa_sound/AudioHardwareALSA.h2
3 files changed, 18 insertions, 1 deletions
diff --git a/legacy/alsa_sound/Android.mk b/legacy/alsa_sound/Android.mk
index c704e838..7851f9ee 100644
--- a/legacy/alsa_sound/Android.mk
+++ b/legacy/alsa_sound/Android.mk
@@ -137,6 +137,10 @@ ifeq ($(BOARD_USES_MOTOROLA_EMU_AUDIO),true)
common_cflags += -DMOTOROLA_EMU_AUDIO
endif
+ifeq ($(strip $(AUDIO_FEATURE_ENABLED_HWDEP_CAL)),true)
+ LOCAL_CFLAGS += -DHWDEP_CAL_ENABLED
+endif
+
include $(CLEAR_VARS)
LOCAL_ARM_MODE := arm
diff --git a/legacy/alsa_sound/AudioHardwareALSA.cpp b/legacy/alsa_sound/AudioHardwareALSA.cpp
index 00a454b0..582a191d 100644
--- a/legacy/alsa_sound/AudioHardwareALSA.cpp
+++ b/legacy/alsa_sound/AudioHardwareALSA.cpp
@@ -39,7 +39,9 @@
#include <hardware_legacy/power.h>
#include <audio_utils/resampler.h>
#include <pthread.h>
+#ifdef HWDEP_CAL_ENABLED
#include "sound/msmcal-hwdep.h"
+#endif
#include "AudioHardwareALSA.h"
#ifdef QCOM_USBAUDIO_ENABLED
@@ -55,9 +57,10 @@
#endif
#define MAX_FILE_NAME 50
+#ifdef HWDEP_CAL_ENABLED
#define SOUND_TRIGGER_DEVICE_HANDSET_MONO_LOW_POWER_ACDB_ID (100)
#define MAX_CAL_NAME 20
-
+#endif
extern "C"
{
@@ -93,6 +96,7 @@ extern "C"
namespace android_audio_legacy
{
+#ifdef HWDEP_CAL_ENABLED
char cal_name_info[WCD9XXX_MAX_CAL][MAX_CAL_NAME] = {
"anc_cal",
"mbhc_cal",
@@ -100,6 +104,7 @@ char cal_name_info[WCD9XXX_MAX_CAL][MAX_CAL_NAME] = {
typedef int (*acdb_loader_get_calibration_t)(char *attr, int size, void *data);
acdb_loader_get_calibration_t acdb_loader_get_calibration;
+#endif
// ----------------------------------------------------------------------------
AudioHardwareInterface *AudioHardwareALSA::create() {
@@ -113,6 +118,7 @@ AudioHardwareInterface *AudioHardwareALSA::create() {
return hardwareInterface;
}
+#ifdef HWDEP_CAL_ENABLED
int hwUtilOpen(int cardNum)
{
int fd = -1;
@@ -176,6 +182,7 @@ int sendCodecCal(acdb_loader_get_calibration_t acdb_loader_get_calibration, int
}
return ret;
}
+#endif
AudioHardwareALSA::AudioHardwareALSA() :
mALSADevice(0),mVoipInStreamCount(0),mVoipOutStreamCount(0),mVoipMicMute(false),
@@ -317,7 +324,9 @@ AudioHardwareALSA::AudioHardwareALSA() :
return;
}
}
+#ifdef HWDEP_CAL_ENABLED
initCodecCalib();
+#endif
fclose(fp);
}
memset(ucm_name_str, 0, MAX_FILE_NAME);
@@ -472,6 +481,7 @@ AudioHardwareALSA::AudioHardwareALSA() :
mStatus = OK;
}
+#ifdef HWDEP_CAL_ENABLED
void AudioHardwareALSA::initCodecCalib()
{
int fd;
@@ -492,6 +502,7 @@ void AudioHardwareALSA::initCodecCalib()
if (sendCodecCal(acdb_loader_get_calibration, fd) < 0)
ALOGE("%s: Could not send anc cal", __FUNCTION__);
}
+#endif
AudioHardwareALSA::~AudioHardwareALSA()
{
diff --git a/legacy/alsa_sound/AudioHardwareALSA.h b/legacy/alsa_sound/AudioHardwareALSA.h
index a5c42a17..6c21378e 100644
--- a/legacy/alsa_sound/AudioHardwareALSA.h
+++ b/legacy/alsa_sound/AudioHardwareALSA.h
@@ -875,7 +875,9 @@ public:
void pauseIfUseCaseTunnelOrLPA();
void resumeIfUseCaseTunnelOrLPA();
+#ifdef HWDEP_CAL_ENABLED
void initCodecCalib(void);
+#endif
private:
status_t openExtOutput(int device);
status_t closeExtOutput(int device);