mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-12-30 18:41:11 +00:00
motion: At shutdown, access sensors only if initialized.
When sensor_shutdown() is called, the sensors may already been powered off, or will be soon. In that case, do not attempts to access them. Check their state before setting range or disabling activities. BRANCH=smaug BUG=chromium:557966 TEST=compile Change-Id: I60640b120a23f9aab393a93c4c67ef17222ced4e Signed-off-by: Gwendal Grignou <gwendal@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/314382 Reviewed-by: Alec Berg <alecaberg@chromium.org>
This commit is contained in:
committed by
chrome-bot
parent
6ebcb4b272
commit
cef0fdb90e
@@ -426,21 +426,28 @@ static void motion_sense_shutdown(void)
|
||||
#endif
|
||||
|
||||
sensor_active = SENSOR_ACTIVE_S5;
|
||||
|
||||
for (i = 0; i < motion_sensor_count; i++) {
|
||||
sensor = &motion_sensors[i];
|
||||
/* Forget about changes made by the AP */
|
||||
sensor->config[SENSOR_CONFIG_AP].odr = 0;
|
||||
sensor->config[SENSOR_CONFIG_AP].ec_rate = 0;
|
||||
sensor->drv->set_range(sensor, sensor->default_range, 0);
|
||||
}
|
||||
motion_sense_switch_sensor_rate();
|
||||
|
||||
for (i = 0; i < motion_sensor_count; i++) {
|
||||
sensor = &motion_sensors[i];
|
||||
if (sensor->state != SENSOR_INITIALIZED)
|
||||
continue;
|
||||
sensor->drv->set_range(sensor, sensor->default_range, 0);
|
||||
}
|
||||
/* Forget activities set by the AP */
|
||||
#ifdef CONFIG_GESTURE_DETECTION_MASK
|
||||
mask = CONFIG_GESTURE_DETECTION_MASK;
|
||||
while (mask) {
|
||||
i = get_next_bit(&mask);
|
||||
sensor = &motion_sensors[i];
|
||||
if (sensor->state != SENSOR_INITIALIZED)
|
||||
continue;
|
||||
sensor->drv->list_activities(sensor,
|
||||
&enabled, &disabled);
|
||||
/* exclude double tap, it is used internally. */
|
||||
|
||||
Reference in New Issue
Block a user