audio: hal: Add property to disable keep alive
-This property needs to be enabled for measuring KPI on hdmi device
otherwise KPI values are not correct as keep alive thread insterts
silence.
Change-Id: I25198d29962b0b85d38cbfa03b15d6189a080cbf
diff --git a/hal/audio_extn/keep_alive.c b/hal/audio_extn/keep_alive.c
index 8bd1da1..3e9a91c 100644
--- a/hal/audio_extn/keep_alive.c
+++ b/hal/audio_extn/keep_alive.c
@@ -49,6 +49,7 @@
STATE_DEINIT = -1,
STATE_IDLE,
STATE_ACTIVE,
+ STATE_DISABLED,
} state_t;
typedef enum {
@@ -93,6 +94,13 @@
ka.userdata = adev;
ka.state = STATE_IDLE;
ka.pcm = NULL;
+
+ if (property_get_bool("audio.keep_alive.disabled", false)) {
+ ALOGE("keep alive disabled");
+ ka.state = STATE_DISABLED;
+ return;
+ }
+
pthread_mutex_init(&ka.lock, (const pthread_mutexattr_t *) NULL);
pthread_cond_init(&ka.cond, (const pthread_condattr_t *) NULL);
pthread_cond_init(&ka.wake_up_cond, (const pthread_condattr_t *) NULL);
@@ -108,7 +116,7 @@
static void send_cmd_l(request_t r)
{
- if (ka.state == STATE_DEINIT)
+ if (ka.state == STATE_DEINIT || ka.state == STATE_DISABLED)
return;
struct keep_alive_cmd *cmd =
@@ -193,6 +201,9 @@
struct audio_usecase *usecase;
int32_t sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
+ if (ka.state == STATE_DISABLED)
+ return;
+
pthread_mutex_lock(&ka.lock);
if (ka.state == STATE_DEINIT) {
@@ -317,6 +328,9 @@
{
struct audio_device * adev = (struct audio_device *)ka.userdata;
+ if (ka.state == STATE_DISABLED)
+ return;
+
pthread_mutex_lock(&ka.lock);
if ((ka.state == STATE_DEINIT) || (ka.state == STATE_IDLE))
@@ -359,6 +373,9 @@
char value[32];
int ret;
+ if (ka.state == STATE_DISABLED)
+ return;
+
ret = str_parms_get_str(parms, AUDIO_PARAMETER_DEVICE_CONNECT, value, sizeof(value));
if (ret >= 0) {
int val = atoi(value);