From 864d352a9e3177bf9db8a7974a07712a623e5a5a Mon Sep 17 00:00:00 2001 From: Saadi Maalem Date: Fri, 9 Oct 2015 11:05:57 +0800 Subject: sensor: fix flush interface implement Change-Id: Ie29ff4edf0adad6b49f5fe1ae057e723128585ac Tracked-On: https://jira.ndg.intel.com/browse/MARVIN-880 Signed-off-by: Baixing Tan Reviewed-on: https://android.intel.com/421534 Reviewed-by: Ledentec, AlexandreX Reviewed-by: Tasayco Loarte, VictorX --- libsensors_iio/src/HWSensorBase.cpp | 7 +++++-- libsensors_iio/src/HWSensorBase.h | 2 +- libsensors_iio/src/SWSensorBase.cpp | 6 +++--- libsensors_iio/src/SWSensorBase.h | 2 +- libsensors_iio/src/SensorBase.cpp | 2 +- libsensors_iio/src/SensorBase.h | 2 +- libsensors_iio/src/SensorHAL.cpp | 6 +++--- 7 files changed, 15 insertions(+), 12 deletions(-) (limited to 'libsensors_iio') diff --git a/libsensors_iio/src/HWSensorBase.cpp b/libsensors_iio/src/HWSensorBase.cpp index d029114..e569c2a 100644 --- a/libsensors_iio/src/HWSensorBase.cpp +++ b/libsensors_iio/src/HWSensorBase.cpp @@ -299,7 +299,7 @@ restore_status_enable: return err; } -int HWSensorBase::FlushData() +int HWSensorBase::FlushData(int base) { int err; @@ -315,7 +315,10 @@ int HWSensorBase::FlushData() } else return -EINVAL; - return SensorBase::FlushData(); + if (base) + return SensorBase::FlushData(0); + else + return 0; } void HWSensorBase::ThreadTask() diff --git a/libsensors_iio/src/HWSensorBase.h b/libsensors_iio/src/HWSensorBase.h index d7fb8a0..4a6f319 100644 --- a/libsensors_iio/src/HWSensorBase.h +++ b/libsensors_iio/src/HWSensorBase.h @@ -76,7 +76,7 @@ public: virtual ~HWSensorBase(); virtual int Enable(int handle, bool enable); - virtual int FlushData(); + virtual int FlushData(int base); virtual void ThreadTask(); }; diff --git a/libsensors_iio/src/SWSensorBase.cpp b/libsensors_iio/src/SWSensorBase.cpp index b08b225..320752e 100644 --- a/libsensors_iio/src/SWSensorBase.cpp +++ b/libsensors_iio/src/SWSensorBase.cpp @@ -72,20 +72,20 @@ int SWSensorBase::AddSensorDependency(SensorBase *p) return SensorBase::AddSensorDependency(p); } -int SWSensorBase::FlushData() +int SWSensorBase::FlushData(int) { int err, i; if (GetStatus() && (GetMinTimeout() > 0)) { for (i = 0; i < (int)dependencies_num; i++) { - err = dependencies[i]->FlushData(); + err = dependencies[i]->FlushData(0); if (err < 0) return -EINVAL; } } else return -EINVAL; - return SensorBase::FlushData(); + return SensorBase::FlushData(0); } void SWSensorBase::ThreadTask() diff --git a/libsensors_iio/src/SWSensorBase.h b/libsensors_iio/src/SWSensorBase.h index 06330d0..55abb86 100644 --- a/libsensors_iio/src/SWSensorBase.h +++ b/libsensors_iio/src/SWSensorBase.h @@ -42,7 +42,7 @@ public: virtual ~SWSensorBase(); int AddSensorDependency(SensorBase *p); - virtual int FlushData(); + virtual int FlushData(int base); virtual void ThreadTask(); }; diff --git a/libsensors_iio/src/SensorBase.cpp b/libsensors_iio/src/SensorBase.cpp index 827077d..c6cb908 100644 --- a/libsensors_iio/src/SensorBase.cpp +++ b/libsensors_iio/src/SensorBase.cpp @@ -355,7 +355,7 @@ bool SensorBase::FillSensor_tData(struct sensor_t *data) return true; } -int SensorBase::FlushData() +int SensorBase::FlushData(int) { int err; sensors_event_t flush_event_data; diff --git a/libsensors_iio/src/SensorBase.h b/libsensors_iio/src/SensorBase.h index 6187ec3..9b73dcc 100644 --- a/libsensors_iio/src/SensorBase.h +++ b/libsensors_iio/src/SensorBase.h @@ -140,7 +140,7 @@ public: bool FillSensor_tData(struct sensor_t *data); - virtual int FlushData(); + virtual int FlushData(int); virtual void ProcessData(SensorBaseData *data); virtual void ProcessEvent(struct iio_event_data *event_data); diff --git a/libsensors_iio/src/SensorHAL.cpp b/libsensors_iio/src/SensorHAL.cpp index 15366db..90f1931 100644 --- a/libsensors_iio/src/SensorHAL.cpp +++ b/libsensors_iio/src/SensorHAL.cpp @@ -584,12 +584,12 @@ st_hal_load_free_iio_sysfs_path: static int st_hal_dev_flush(struct sensors_poll_device_1 *dev, int handle) { STSensorHAL_data *hal_data = (STSensorHAL_data *)dev; - ALOGD("st_hal_dev_flush type=%d", ((struct sensor_t) hal_data->sensor_t_list[handle]).type); + ALOGD("st_hal_dev_flush type=%u", ((struct sensor_t) hal_data->sensor_t_list[handle-1]).type); /* One-shot sensor must return -EINVAL and not generate any flush complete metadata event */ - if (SENSOR_TYPE_SIGNIFICANT_MOTION == ((struct sensor_t) hal_data->sensor_t_list[handle]).type) + if (SENSOR_TYPE_SIGNIFICANT_MOTION == ((struct sensor_t) hal_data->sensor_t_list[handle-1]).type) return -EINVAL; - return hal_data->sensor_classes[handle]->FlushData(); + return hal_data->sensor_classes[handle]->FlushData(1); } /** -- cgit v1.2.3