summaryrefslogtreecommitdiff
path: root/drivers/iio/common/cros_ec_sensors
diff options
context:
space:
mode:
authorGwendal Grignou <gwendal@chromium.org>2019-07-15 16:14:51 -0700
committerJonathan Cameron <Jonathan.Cameron@huawei.com>2019-07-27 23:05:25 +0100
commit12bf745c9afb6755acba186091bcbb61229f4165 (patch)
tree8b5175bf53e45a8ad28e4ba06f8d33f32dd3ef35 /drivers/iio/common/cros_ec_sensors
parent3cf9df00957fb27cb116761cd4d656aee06e40d3 (diff)
iio: cros_ec: Add sign vector in core for backward compatibility
To allow cros_ec iio core library to be used with legacy device, add a vector to rotate sensor data if necessary: legacy devices are not reporting data in HTML5/Android sensor referential. Check the data is not rotated on recent chromebooks that use the HTML5 standard to present sensor data. Signed-off-by: Gwendal Grignou <gwendal@chromium.org> Reviewed-by: Douglas Anderson <dianders@chromium.org> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Diffstat (limited to 'drivers/iio/common/cros_ec_sensors')
-rw-r--r--drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c b/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c
index d02660b1f0fe..3b491cf7be95 100644
--- a/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c
+++ b/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c
@@ -101,6 +101,9 @@ int cros_ec_sensors_core_init(struct platform_device *pdev,
}
state->type = state->resp->info.type;
state->loc = state->resp->info.location;
+
+ /* Set sign vector, only used for backward compatibility. */
+ memset(state->sign, 1, CROS_EC_SENSOR_MAX_AXIS);
}
return 0;
@@ -303,6 +306,7 @@ static int cros_ec_sensors_read_data_unsafe(struct iio_dev *indio_dev,
if (ret < 0)
return ret;
+ *data *= st->sign[i];
data++;
}