summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--common/online_calibration.c25
1 files changed, 23 insertions, 2 deletions
diff --git a/common/online_calibration.c b/common/online_calibration.c
index 519b1be8e3..dd2c154260 100644
--- a/common/online_calibration.c
+++ b/common/online_calibration.c
@@ -93,8 +93,29 @@ void online_calibration_init(void)
{
size_t i;
- for (i = 0; i < SENSOR_COUNT; i++)
- motion_sensors[i].online_calib_data->last_temperature = -1;
+ for (i = 0; i < SENSOR_COUNT; i++) {
+ struct motion_sensor_t *s = motion_sensors + i;
+ void *type_specific_data = NULL;
+
+ if (s->online_calib_data) {
+ s->online_calib_data->last_temperature = -1;
+ type_specific_data =
+ s->online_calib_data->type_specific_data;
+ }
+
+ if (!type_specific_data)
+ continue;
+
+ switch (s->type) {
+ case MOTIONSENSE_TYPE_ACCEL: {
+ accel_cal_reset((struct accel_cal *)
+ type_specific_data);
+ break;
+ }
+ default:
+ break;
+ }
+ }
}
bool online_calibration_has_new_values(void)