hal: add API to pass FNN usecase status to acdb-loader
Add API to allow FNN usecase status to be passed to
acdb-loader allowing persist cal block to be set
based on the FNN usecase status.
Change-Id: Ib9ce1c627eff26e873e1fd88fa2e19e6635a38e1
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index d30e777..0a68567 100755
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -359,6 +359,8 @@
acdb_set_codec_data_t acdb_set_codec_data;
acdb_reload_t acdb_reload;
acdb_reload_v2_t acdb_reload_v2;
+ acdb_get_fluence_nn_state_t acdb_get_fluence_nn_state;
+ acdb_set_fluence_nn_state_t acdb_set_fluence_nn_state;
void *hw_info;
acdb_send_gain_dep_cal_t acdb_send_gain_dep_cal;
struct csd_data *csd;
@@ -3730,6 +3732,18 @@
ALOGE("%s: dlsym error %s for acdb_loader_reload_acdb_files_v2", __func__, dlerror());
}
+ my_data->acdb_set_fluence_nn_state = (acdb_set_fluence_nn_state_t)dlsym(
+ my_data->acdb_handle,
+ "acdb_set_fluence_nn_state");
+ if (!my_data->acdb_set_fluence_nn_state)
+ ALOGE("%s: dlsym error %s for acdb_set_fluence_nn_state", __func__, dlerror());
+
+ my_data->acdb_get_fluence_nn_state = (acdb_get_fluence_nn_state_t)dlsym(
+ my_data->acdb_handle,
+ "acdb_get_fluence_nn_state");
+ if (!my_data->acdb_get_fluence_nn_state)
+ ALOGE("%s: dlsym error %s for acdb_get_fluence_nn_state", __func__, dlerror());
+
my_data->acdb_reload = (acdb_reload_t)dlsym(my_data->acdb_handle,
"acdb_loader_reload_acdb_files");
if (my_data->acdb_reload == NULL) {
@@ -12591,3 +12605,37 @@
return true;
return false;
}
+
+bool platform_set_fluence_nn_state(void *platform, bool state) {
+ struct platform_data *my_data = (struct platform_data *)platform;
+
+ if (my_data->acdb_set_fluence_nn_state == NULL) {
+ ALOGE("%s: dlsym error for acdb_set_fluence_nn_state", __func__);
+ return false;
+ }
+
+ if (my_data->fluence_nn_enabled) {
+ my_data->acdb_set_fluence_nn_state(state);
+ ALOGD("%s: set fluence nn state %d", __func__, state);
+ return true;
+ }
+
+ return false;
+}
+
+int platform_get_fluence_nn_state(void *platform) {
+ struct platform_data *my_data = (struct platform_data *)platform;
+ int ret = -1;
+
+ if (my_data->acdb_get_fluence_nn_state == NULL) {
+ ALOGE("%s: dlsym error for acdb_get_fluence_nn_state", __func__);
+ return ret;
+ }
+
+ if (my_data->fluence_nn_enabled)
+ ret = my_data->acdb_get_fluence_nn_state();
+ else
+ ALOGD("fluence nn disabled");
+
+ return ret;
+}