diff options
-rw-r--r-- | driver/als_tcs3400.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/driver/als_tcs3400.c b/driver/als_tcs3400.c index 532b42953e..925c192ba1 100644 --- a/driver/als_tcs3400.c +++ b/driver/als_tcs3400.c @@ -429,8 +429,9 @@ static int tcs3400_post_events(struct motion_sensor_t *s, uint32_t last_ts) /* if clear channel data changed, send illuminance upstream */ last_v = s->raw_xyz; - if ((raw_data[CLEAR_CRGB_IDX] != TCS_SATURATION_LEVEL) && - (last_v[X] != lux)) { + if (is_calibration || + ((raw_data[CLEAR_CRGB_IDX] != TCS_SATURATION_LEVEL) && + (last_v[X] != lux))) { if (is_spoof(s)) last_v[X] = s->spoof_xyz[X]; else @@ -451,11 +452,12 @@ static int tcs3400_post_events(struct motion_sensor_t *s, uint32_t last_ts) * send it upstream */ last_v = rgb_s->raw_xyz; - if (((last_v[X] != xyz_data[X]) || (last_v[Y] != xyz_data[Y]) || - (last_v[Z] != xyz_data[Z])) && - ((raw_data[RED_CRGB_IDX] != TCS_SATURATION_LEVEL) && - (raw_data[BLUE_CRGB_IDX] != TCS_SATURATION_LEVEL) && - (raw_data[GREEN_CRGB_IDX] != TCS_SATURATION_LEVEL))) { + if (is_calibration || + (((last_v[X] != xyz_data[X]) || (last_v[Y] != xyz_data[Y]) || + (last_v[Z] != xyz_data[Z])) && + ((raw_data[RED_CRGB_IDX] != TCS_SATURATION_LEVEL) && + (raw_data[BLUE_CRGB_IDX] != TCS_SATURATION_LEVEL) && + (raw_data[GREEN_CRGB_IDX] != TCS_SATURATION_LEVEL)))) { if (is_spoof(rgb_s)) { memcpy(last_v, rgb_s->spoof_xyz, sizeof(rgb_s->spoof_xyz)); |