hal: poll for SLPI subsystem status
Add support to poll for SLPI(Sensor Low Power Island) subsystem
offline and online status events and pass to sound trigger hal.
Bug: 109833647
Test: stream audio, restart SLPI, audio continues to stream
Change-Id: I667a050aca7d8547e4f42776fae5185b2861a77f
diff --git a/hal/audio_extn/soundtrigger.c b/hal/audio_extn/soundtrigger.c
index c11e747..3584d9b 100644
--- a/hal/audio_extn/soundtrigger.c
+++ b/hal/audio_extn/soundtrigger.c
@@ -78,7 +78,9 @@
SND_CARD_STATUS_OFFLINE,
SND_CARD_STATUS_ONLINE,
CPE_STATUS_OFFLINE,
- CPE_STATUS_ONLINE
+ CPE_STATUS_ONLINE,
+ SLPI_STATUS_OFFLINE,
+ SLPI_STATUS_ONLINE,
} ssr_event_status_t;
struct sound_trigger_session_info {
@@ -484,6 +486,19 @@
event.u.value = val;
st_dev->st_callback(AUDIO_EVENT_NUM_ST_SESSIONS, &event);
}
+
+ ret = str_parms_get_str(params, "SLPI_STATUS", value, sizeof(value));
+ if (ret > 0) {
+ if (strstr(value, "OFFLINE")) {
+ event.u.status = SLPI_STATUS_OFFLINE;
+ st_dev->st_callback(AUDIO_EVENT_SSR, &event);
+ } else if (strstr(value, "ONLINE")) {
+ event.u.status = SLPI_STATUS_ONLINE;
+ st_dev->st_callback(AUDIO_EVENT_SSR, &event);
+ } else {
+ ALOGE("%s: unknown SLPI status", __func__);
+ }
+ }
}
int audio_extn_sound_trigger_init(struct audio_device *adev)