diff --git a/drivers/sensorhub/stm/ssp_data.c b/drivers/sensorhub/stm/ssp_data.c index 428c815cd193a79d40a524ebb0b778b386a15519..2410a4f0a467d0f2efdecab056819cd8d1d5d944 100644 --- a/drivers/sensorhub/stm/ssp_data.c +++ b/drivers/sensorhub/stm/ssp_data.c @@ -33,10 +33,14 @@ static void generate_data(struct ssp_data *data, struct sensor_value *sensorsdat int iSensorData, u64 timestamp) { u64 move_timestamp = data->lastTimestamp[iSensorData]; - while ((move_timestamp * 10 + data->adDelayBuf[iSensorData] * 15) < (timestamp * 10)) { - move_timestamp += data->adDelayBuf[iSensorData]; - sensorsdata->timestamp = move_timestamp; - data->report_sensor_data[iSensorData](data, sensorsdata); + if ((iSensorData != PROXIMITY_SENSOR) && (iSensorData != GESTURE_SENSOR) + && (iSensorData != STEP_DETECTOR) && (iSensorData != SIG_MOTION_SENSOR) + && (iSensorData != STEP_COUNTER) && (iSensorData != TILT_TO_WAKE)) { + while ((move_timestamp * 10 + data->adDelayBuf[iSensorData] * 15) < (timestamp * 10)) { + move_timestamp += data->adDelayBuf[iSensorData]; + sensorsdata->timestamp = move_timestamp; + data->report_sensor_data[iSensorData](data, sensorsdata); + } } }