summaryrefslogtreecommitdiff
path: root/libsensors_iio/src/sensor_cal.c
diff options
context:
space:
mode:
Diffstat (limited to 'libsensors_iio/src/sensor_cal.c')
-rw-r--r--libsensors_iio/src/sensor_cal.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/libsensors_iio/src/sensor_cal.c b/libsensors_iio/src/sensor_cal.c
index 1d14611..94fae63 100644
--- a/libsensors_iio/src/sensor_cal.c
+++ b/libsensors_iio/src/sensor_cal.c
@@ -23,6 +23,10 @@ int load_cali_data(const int sindex)
int err = 0, num, sum;
FILE *filp;
+ if (((sindex == ACCEL_SINDEX) && accl_cal_data_loaded) ||
+ ((sindex == GYRO_SINDEX) && gyro_cal_data_loaded))
+ return 0;
+
filp = fopen(sensor_cali_data_path[sindex], "r");
if (filp == NULL) {
err = -errno;
@@ -51,7 +55,7 @@ out:
}
/* Write calibration data to iio channel offset */
-void set_cali_offset(const int sindex)
+void set_cali_offset(const int sindex, const bool wakeup)
{
#define MAX_BUF_LEN 64
int err, j;
@@ -60,10 +64,10 @@ void set_cali_offset(const int sindex)
for (j = 0; j < (Z_AXIS_INDEX + 1); j++) {
err = snprintf(buf, MAX_BUF_LEN, "%s/%s",
- sensor_sysfs_dir[sindex], sensor_offset[sindex][j]);
+ sensor_sysfs_dir[sindex][wakeup], sensor_offset[sindex][j]);
if (err < 0) {
ALOGE("%s/%s snprintf err=%d",
- sensor_sysfs_dir[sindex], sensor_offset[sindex][j], err);
+ sensor_sysfs_dir[sindex][wakeup], sensor_offset[sindex][j], err);
return;
}
filp = fopen(buf, "w");
@@ -82,7 +86,7 @@ void set_cali_offset(const int sindex)
}
-void do_cal_data_loading(const int sindex)
+void do_cal_data_loading(const int sindex, const bool wakeup)
{
int err;
@@ -90,6 +94,6 @@ void do_cal_data_loading(const int sindex)
if (err != 0)
return;
- set_cali_offset(sindex);
+ set_cali_offset(sindex, wakeup);
}