summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Vaccaro <nvaccaro@google.com>2015-05-19 23:15:54 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-05-19 23:15:54 +0000
commite0c1691f695f828608c36315fa405db2fa8d153e (patch)
tree1eaee755ba774f192ebe9ad2d33d11a10d9022fb
parent0212561eed3641576a23421af50c9948f315546b (diff)
parent086bbb4e8cf132cf2398d25c34c0e1533edf5ec1 (diff)
downloadinvensense-e0c1691f695f828608c36315fa405db2fa8d153e.tar.gz
am 086bbb4e: am a38914db: Invensense: 6515: adjust minDelay and maxDelay valuesandroid-cts-6.0_r9android-cts-6.0_r8android-cts-6.0_r7android-cts-6.0_r6android-cts-6.0_r5android-cts-6.0_r4android-cts-6.0_r32android-cts-6.0_r31android-cts-6.0_r30android-cts-6.0_r3android-cts-6.0_r29android-cts-6.0_r28android-cts-6.0_r27android-cts-6.0_r26android-cts-6.0_r25android-cts-6.0_r24android-cts-6.0_r23android-cts-6.0_r22android-cts-6.0_r21android-cts-6.0_r20android-cts-6.0_r2android-cts-6.0_r19android-cts-6.0_r18android-cts-6.0_r17android-cts-6.0_r16android-cts-6.0_r15android-cts-6.0_r14android-cts-6.0_r13android-cts-6.0_r12android-cts-6.0_r1android-6.0.1_r9android-6.0.1_r81android-6.0.1_r80android-6.0.1_r8android-6.0.1_r79android-6.0.1_r78android-6.0.1_r77android-6.0.1_r74android-6.0.1_r73android-6.0.1_r72android-6.0.1_r70android-6.0.1_r7android-6.0.1_r69android-6.0.1_r66android-6.0.1_r65android-6.0.1_r63android-6.0.1_r61android-6.0.1_r60android-6.0.1_r59android-6.0.1_r58android-6.0.1_r57android-6.0.1_r56android-6.0.1_r55android-6.0.1_r52android-6.0.1_r51android-6.0.1_r50android-6.0.1_r5android-6.0.1_r49android-6.0.1_r48android-6.0.1_r47android-6.0.1_r46android-6.0.1_r43android-6.0.1_r42android-6.0.1_r41android-6.0.1_r40android-6.0.1_r4android-6.0.1_r33android-6.0.1_r32android-6.0.1_r31android-6.0.1_r30android-6.0.1_r3android-6.0.1_r28android-6.0.1_r27android-6.0.1_r26android-6.0.1_r20android-6.0.1_r18android-6.0.1_r17android-6.0.1_r16android-6.0.1_r13android-6.0.1_r12android-6.0.1_r11android-6.0.1_r10android-6.0.1_r1android-6.0.0_r7android-6.0.0_r6android-6.0.0_r5android-6.0.0_r41android-6.0.0_r4android-6.0.0_r3android-6.0.0_r26android-6.0.0_r25android-6.0.0_r24android-6.0.0_r23android-6.0.0_r2android-6.0.0_r13android-6.0.0_r12android-6.0.0_r11android-6.0.0_r1marshmallow-releasemarshmallow-mr3-releasemarshmallow-mr2-releasemarshmallow-mr1-releasemarshmallow-mr1-devmarshmallow-dr-releasemarshmallow-dr-dragon-releasemarshmallow-dr-devmarshmallow-devmarshmallow-cts-release
* commit '086bbb4e8cf132cf2398d25c34c0e1533edf5ec1': Invensense: 6515: adjust minDelay and maxDelay values
-rw-r--r--6515/libsensors_iio/MPLSensor.cpp30
-rw-r--r--6515/libsensors_iio/sensors.h108
-rwxr-xr-x6515/libsensors_iio/sensors_mpl.cpp6
3 files changed, 78 insertions, 66 deletions
diff --git a/6515/libsensors_iio/MPLSensor.cpp b/6515/libsensors_iio/MPLSensor.cpp
index 8c35b9a..ad6d4e9 100644
--- a/6515/libsensors_iio/MPLSensor.cpp
+++ b/6515/libsensors_iio/MPLSensor.cpp
@@ -2909,6 +2909,18 @@ int MPLSensor::scHandler(sensors_event_t* s)
LOGV_IF(HANDLER_DATA, "HAL:sc data: %lld - %lld - %d",
s->step_counter, s->timestamp, update);
#endif
+
+ if (s->timestamp == 0 && update) {
+ struct timespec ts;
+ clock_gettime(CLOCK_MONOTONIC, &ts);
+ s->timestamp = (int64_t) ts.tv_sec * 1000000000 + ts.tv_nsec;
+ // workaround for some platform which has gap between monotonic clock
+ // and Android SystemClock.
+ // Subtract 100ms not to point the future for SystemClock.
+ // s->timestamp -= 100000000LL;
+ LOGV_IF(0, "HAL:sc timestamp %lld", s->timestamp);
+ }
+
return update;
}
@@ -4975,18 +4987,6 @@ void MPLSensor::fillAccel(const char* accel, struct sensor_t *list)
list[Accelerometer].power = ACCEL_MPU6500_POWER;
list[Accelerometer].minDelay = ACCEL_MPU6500_MINDELAY;
return;
- } else if (accel != NULL && strcmp(accel, "MPU6500") == 0) {
- list[Accelerometer].maxRange = ACCEL_MPU6500_RANGE;
- list[Accelerometer].resolution = ACCEL_MPU6500_RESOLUTION;
- list[Accelerometer].power = ACCEL_MPU6500_POWER;
- list[Accelerometer].minDelay = ACCEL_MPU6500_MINDELAY;
- return;
- } else if (accel != NULL && strcmp(accel, "MPU6500") == 0) {
- list[Accelerometer].maxRange = ACCEL_MPU6500_RANGE;
- list[Accelerometer].resolution = ACCEL_MPU6500_RESOLUTION;
- list[Accelerometer].power = ACCEL_MPU6500_POWER;
- list[Accelerometer].minDelay = ACCEL_MPU6500_MINDELAY;
- return;
} else if (accel != NULL && strcmp(accel, "MPU9150") == 0) {
list[Accelerometer].maxRange = ACCEL_MPU9150_RANGE;
list[Accelerometer].resolution = ACCEL_MPU9150_RESOLUTION;
@@ -5753,8 +5753,14 @@ int MPLSensor::batch(int handle, int flags, int64_t period_ns, int64_t timeout)
// limit all rates to reasonable ones */
if (period_ns < 5000000LL) {
period_ns = 5000000LL;
+ } else if (period_ns > 200000000LL) {
+ period_ns = 200000000LL;
}
+ LOGV_IF(PROCESS_VERBOSE,
+ "HAL:batch after applying upper and lower limit: %llu ns, (%.2f Hz)",
+ period_ns, 1000000000.f / period_ns);
+
switch (what) {
case Gyro:
case RawGyro:
diff --git a/6515/libsensors_iio/sensors.h b/6515/libsensors_iio/sensors.h
index e299228..4ea3e4d 100644
--- a/6515/libsensors_iio/sensors.h
+++ b/6515/libsensors_iio/sensors.h
@@ -106,67 +106,77 @@ enum {
/*****************************************************************************/
/*
- Android KitKat
+ Android Lollipop
Populate sensor_t structure according to hardware sensors.h
- { name, vendor, version, handle, type, maxRange, resolution, power, minDelay,
- fifoReservedEventCount, fifoMaxEventCount, reserved[] }
+ {name, vendor, version, handle,
+ type, maxRange, resolution, power, minDelay, fifoReservedEventCount, fifoMaxEventCount,
+ stringType, requiredPermission, maxDelay, flags, reserved[]}
*/
#if defined ANDROID_LOLLIPOP
static struct sensor_t sBaseSensorList[] =
{
- {(const char *)("MPL Gyroscope"), (const char *)("Invensense"), 1,
- SENSORS_GYROSCOPE_HANDLE,
- SENSOR_TYPE_GYROSCOPE, 2000.0f, 1.0f, 0.5f, 10000, 0, 124, 0,0,0,0,0,0},
- {"MPL Raw Gyroscope", "Invensense", 1,
- SENSORS_RAW_GYROSCOPE_HANDLE,
- SENSOR_TYPE_GYROSCOPE_UNCALIBRATED, 2000.0f, 1.0f, 0.5f, 10000, 0, 124, 0,0,0,0,0,0},
- {"MPL Accelerometer", "Invensense", 1,
- SENSORS_ACCELERATION_HANDLE,
- SENSOR_TYPE_ACCELEROMETER, 10240.0f, 1.0f, 0.5f, 10000, 0, 124, 0,0,0,0,0,0},
- {"MPL Magnetic Field", "Invensense", 1,
- SENSORS_MAGNETIC_FIELD_HANDLE,
- SENSOR_TYPE_MAGNETIC_FIELD, 10240.0f, 1.0f, 0.5f, 10000, 0, 124, 0,0,0,0,0,0},
- {"MPL Raw Magnetic Field", "Invensense", 1,
- SENSORS_RAW_MAGNETIC_FIELD_HANDLE,
- SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED, 10240.0f, 1.0f, 0.5f, 10000, 0, 124, 0,0,0,0,0,0},
+ {"MPL Gyroscope", "Invensense", 1, SENSORS_GYROSCOPE_HANDLE,
+ SENSOR_TYPE_GYROSCOPE, 2000.0f, 1.0f, 0.5f, 10000, 0, 124,
+ SENSOR_STRING_TYPE_GYROSCOPE, "", 200000, SENSOR_FLAG_CONTINUOUS_MODE, {}},
+ {"MPL Raw Gyroscope", "Invensense", 1, SENSORS_RAW_GYROSCOPE_HANDLE,
+ SENSOR_TYPE_GYROSCOPE_UNCALIBRATED, 2000.0f, 1.0f, 0.5f, 10000, 0, 124,
+ SENSOR_STRING_TYPE_GYROSCOPE_UNCALIBRATED, "", 200000, SENSOR_FLAG_CONTINUOUS_MODE, {}},
+ {"MPL Accelerometer", "Invensense", 1, SENSORS_ACCELERATION_HANDLE,
+ SENSOR_TYPE_ACCELEROMETER, 10240.0f, 1.0f, 0.5f, 10000, 0, 124,
+ SENSOR_STRING_TYPE_ACCELEROMETER, "", 200000, SENSOR_FLAG_CONTINUOUS_MODE, {}},
+ {"MPL Magnetic Field", "Invensense", 1, SENSORS_MAGNETIC_FIELD_HANDLE,
+ SENSOR_TYPE_MAGNETIC_FIELD, 10240.0f, 1.0f, 0.5f, 10000, 0, 124,
+ SENSOR_STRING_TYPE_MAGNETIC_FIELD, "", 200000, SENSOR_FLAG_CONTINUOUS_MODE, {}},
+ {"MPL Raw Magnetic Field", "Invensense", 1, SENSORS_RAW_MAGNETIC_FIELD_HANDLE,
+ SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED, 10240.0f, 1.0f, 0.5f, 10000, 0, 124,
+ SENSOR_STRING_TYPE_MAGNETIC_FIELD_UNCALIBRATED, "", 200000, SENSOR_FLAG_CONTINUOUS_MODE, {}},
#ifdef ENABLE_PRESSURE
- {"MPL Pressure", "Invensense", 1,
- SENSORS_PRESSURE_HANDLE,
- SENSOR_TYPE_PRESSURE, 10240.0f, 1.0f, 0.5f, 10000, 0, 165, 0,0,0,0,0,0},
+ {"MPL Pressure", "Invensense", 1, SENSORS_PRESSURE_HANDLE,
+ SENSOR_TYPE_PRESSURE, 10240.0f, 1.0f, 0.5f, 10000, 0, 165,
+ SENSOR_STRING_TYPE_PRESSURE, "", 200000, SENSOR_FLAG_CONTINUOUS_MODE, {}},
#endif
- {"MPL Orientation", "Invensense", 1,
- SENSORS_ORIENTATION_HANDLE,
- SENSOR_TYPE_ORIENTATION, 360.0f, 1.0f, 9.7f, 10000, 0, 0, 0,0,0,0,0,0},
- {"MPL Rotation Vector", "Invensense", 1,
- SENSORS_ROTATION_VECTOR_HANDLE,
- SENSOR_TYPE_ROTATION_VECTOR, 10240.0f, 1.0f, 0.5f, 10000, 0, 0, 0,0,0,0,0,0},
- {"MPL Game Rotation Vector", "Invensense", 1,
- SENSORS_GAME_ROTATION_VECTOR_HANDLE,
- SENSOR_TYPE_GAME_ROTATION_VECTOR, 10240.0f, 1.0f, 0.5f, 10000, 0, 62, 0,0,0,0,0,0},
- {"MPL Linear Acceleration", "Invensense", 1,
- SENSORS_LINEAR_ACCEL_HANDLE,
- SENSOR_TYPE_LINEAR_ACCELERATION, 10240.0f, 1.0f, 0.5f, 10000, 0, 0, 0,0,0,0,0,0},
- {"MPL Gravity", "Invensense", 1,
- SENSORS_GRAVITY_HANDLE,
- SENSOR_TYPE_GRAVITY, 10240.0f, 1.0f, 0.5f, 10000, 0, 0, 0,0,0,0,0,0},
- {"MPL Significant Motion", "Invensense", 1,
- SENSORS_SIGNIFICANT_MOTION_HANDLE,
- SENSOR_TYPE_SIGNIFICANT_MOTION, 100.0f, 1.0f, 1.1f, 0, 0, 0, 0,0,0,0,0,0},
- {"MPL Step Detector", "Invensense", 1,
- SENSORS_PEDOMETER_HANDLE,
- SENSOR_TYPE_STEP_DETECTOR, 100.0f, 1.0f, 1.1f, 0, 0, 124, 0,0,0,0,0,0},
- {"MPL Step Counter", "Invensense", 1,
- SENSORS_STEP_COUNTER_HANDLE,
- SENSOR_TYPE_STEP_COUNTER, 100.0f, 1.0f, 1.1f, 0, 0, 0, 0,0,0,0,0,0},
+ {"MPL Orientation", "Invensense", 1, SENSORS_ORIENTATION_HANDLE,
+ SENSOR_TYPE_ORIENTATION, 360.0f, 1.0f, 9.7f, 10000, 0, 0,
+ SENSOR_STRING_TYPE_ORIENTATION, "", 0, SENSOR_FLAG_CONTINUOUS_MODE, {}},
+ {"MPL Rotation Vector", "Invensense", 1, SENSORS_ROTATION_VECTOR_HANDLE,
+ SENSOR_TYPE_ROTATION_VECTOR, 10240.0f, 1.0f, 0.5f, 10000, 0, 0,
+ SENSOR_STRING_TYPE_ROTATION_VECTOR, "", 0, SENSOR_FLAG_CONTINUOUS_MODE, {}},
+ {"MPL Game Rotation Vector", "Invensense", 1, SENSORS_GAME_ROTATION_VECTOR_HANDLE,
+ SENSOR_TYPE_GAME_ROTATION_VECTOR, 10240.0f, 1.0f, 0.5f, 10000, 0, 62,
+ SENSOR_STRING_TYPE_GAME_ROTATION_VECTOR, "", 200000, SENSOR_FLAG_CONTINUOUS_MODE, {}},
+ {"MPL Linear Acceleration", "Invensense", 1, SENSORS_LINEAR_ACCEL_HANDLE,
+ SENSOR_TYPE_LINEAR_ACCELERATION, 10240.0f, 1.0f, 0.5f, 10000, 0, 0,
+ SENSOR_STRING_TYPE_LINEAR_ACCELERATION, "", 0, SENSOR_FLAG_CONTINUOUS_MODE, {}},
+ {"MPL Gravity", "Invensense", 1, SENSORS_GRAVITY_HANDLE,
+ SENSOR_TYPE_GRAVITY, 10240.0f, 1.0f, 0.5f, 10000, 0, 0,
+ SENSOR_STRING_TYPE_GRAVITY, "", 0, SENSOR_FLAG_CONTINUOUS_MODE, {}},
+ {"MPL Significant Motion", "Invensense", 1, SENSORS_SIGNIFICANT_MOTION_HANDLE,
+ SENSOR_TYPE_SIGNIFICANT_MOTION, 100.0f, 1.0f, 1.1f, 0, 0, 0,
+ SENSOR_STRING_TYPE_SIGNIFICANT_MOTION, "", 0,
+ SENSOR_FLAG_ONE_SHOT_MODE | SENSOR_FLAG_WAKE_UP, {}},
+ {"MPL Step Detector", "Invensense", 1, SENSORS_PEDOMETER_HANDLE,
+ SENSOR_TYPE_STEP_DETECTOR, 100.0f, 1.0f, 1.1f, 0, 0, 124,
+ SENSOR_STRING_TYPE_STEP_DETECTOR, "", 0, SENSOR_FLAG_SPECIAL_REPORTING_MODE, {}},
+ {"MPL Step Counter", "Invensense", 1, SENSORS_STEP_COUNTER_HANDLE,
+ SENSOR_TYPE_STEP_COUNTER, 100.0f, 1.0f, 1.1f, 0, 0, 0,
+ SENSOR_STRING_TYPE_STEP_COUNTER, "", 0, SENSOR_FLAG_ON_CHANGE_MODE, {}},
{"MPL Geomagnetic Rotation Vector", "Invensense", 1,
SENSORS_GEOMAGNETIC_ROTATION_VECTOR_HANDLE,
- SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR, 10240.0f, 1.0f, 0.5f, 5000, 0, 0, 0,0,0,0,0,0},
+ SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR, 10240.0f, 1.0f, 0.5f, 5000, 0, 0,
+ SENSOR_STRING_TYPE_GEOMAGNETIC_ROTATION_VECTOR, "", 0, SENSOR_FLAG_CONTINUOUS_MODE, {}},
#ifdef ENABLE_DMP_SCREEN_AUTO_ROTATION
- {"MPL Screen Orientation", "Invensense ", 1,
- SENSORS_SCREEN_ORIENTATION_HANDLE,
- SENSOR_TYPE_SCREEN_ORIENTATION, 100.0f, 1.0f, 1.1f, 0, 0, 0, 0,0,0,0,0,0},
+ {"MPL Screen Orientation", "Invensense ", 1, SENSORS_SCREEN_ORIENTATION_HANDLE,
+ SENSOR_TYPE_SCREEN_ORIENTATION, 100.0f, 1.0f, 1.1f, 0, 0, 0,
+ SENSOR_STRING_TYPE_SCREEN_ORIENTATION, "", 0, SENSOR_FLAG_ON_CHANGE_MODE, {}},
#endif
};
+/*
+ Android KitKat
+ Populate sensor_t structure according to hardware sensors.h
+ {name, vendor, version,
+ handle,
+ type, maxRange, resolution, power, minDelay, fifoReservedEventCount, fifoMaxEventCount, reserved[]}
+*/
#elif defined ANDROID_KITKAT
static struct sensor_t sBaseSensorList[] =
{
diff --git a/6515/libsensors_iio/sensors_mpl.cpp b/6515/libsensors_iio/sensors_mpl.cpp
index 268b853..7e7b06b 100755
--- a/6515/libsensors_iio/sensors_mpl.cpp
+++ b/6515/libsensors_iio/sensors_mpl.cpp
@@ -438,18 +438,14 @@ static int open_sensors(const struct hw_module_t* module, const char* id,
memset(&dev->device, 0, sizeof(sensors_poll_device_1));
dev->device.common.tag = HARDWARE_DEVICE_TAG;
-#if defined ANDROID_KITKAT || defined ANDROID_LOLLIPOP
dev->device.common.version = SENSORS_DEVICE_API_VERSION_1_3;
dev->device.flush = poll__flush;
-#else
- dev->device.common.version = SENSORS_DEVICE_API_VERSION_1_0;
-#endif
dev->device.common.module = const_cast<hw_module_t*>(module);
dev->device.common.close = poll__close;
dev->device.activate = poll__activate;
dev->device.setDelay = poll__setDelay;
dev->device.poll = poll__poll;
- dev->device.batch = poll__batch;
+ dev->device.batch = poll__batch;
*device = &dev->device.common;
status = 0;