Commit 12bf745c authored by Gwendal Grignou's avatar Gwendal Grignou Committed by Jonathan Cameron

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: default avatarGwendal Grignou <gwendal@chromium.org>
Reviewed-by: default avatarDouglas Anderson <dianders@chromium.org>
Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent 3cf9df00
...@@ -101,6 +101,9 @@ int cros_ec_sensors_core_init(struct platform_device *pdev, ...@@ -101,6 +101,9 @@ int cros_ec_sensors_core_init(struct platform_device *pdev,
} }
state->type = state->resp->info.type; state->type = state->resp->info.type;
state->loc = state->resp->info.location; 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; return 0;
...@@ -303,6 +306,7 @@ static int cros_ec_sensors_read_data_unsafe(struct iio_dev *indio_dev, ...@@ -303,6 +306,7 @@ static int cros_ec_sensors_read_data_unsafe(struct iio_dev *indio_dev,
if (ret < 0) if (ret < 0)
return ret; return ret;
*data *= st->sign[i];
data++; data++;
} }
......
...@@ -66,7 +66,7 @@ struct cros_ec_sensors_core_state { ...@@ -66,7 +66,7 @@ struct cros_ec_sensors_core_state {
s16 offset; s16 offset;
u16 scale; u16 scale;
} calib[CROS_EC_SENSOR_MAX_AXIS]; } calib[CROS_EC_SENSOR_MAX_AXIS];
s8 sign[CROS_EC_SENSOR_MAX_AXIS];
u8 samples[CROS_EC_SAMPLE_SIZE]; u8 samples[CROS_EC_SAMPLE_SIZE];
int (*read_ec_sensors_data)(struct iio_dev *indio_dev, int (*read_ec_sensors_data)(struct iio_dev *indio_dev,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment