summaryrefslogtreecommitdiffstats
path: root/drivers/iio/common/cros_ec_sensors/cros_ec_lid_angle.c
diff options
context:
space:
mode:
authorGwendal Grignou <gwendal@chromium.org>2022-07-11 07:47:16 -0700
committerJonathan Cameron <Jonathan.Cameron@huawei.com>2022-07-18 18:29:13 +0100
commit0b4ae3f6d1210c11f9baf159009c7227eacf90f2 (patch)
tree64865906b0568150bf4c48b7a9d1806bc0195967 /drivers/iio/common/cros_ec_sensors/cros_ec_lid_angle.c
parent0565d238b9b4abb7b904248d9064bea80ac706fe (diff)
downloadlinux-stable-0b4ae3f6d1210c11f9baf159009c7227eacf90f2.tar.gz
linux-stable-0b4ae3f6d1210c11f9baf159009c7227eacf90f2.tar.bz2
linux-stable-0b4ae3f6d1210c11f9baf159009c7227eacf90f2.zip
iio: cros: Register FIFO callback after sensor is registered
Instead of registering callback to process sensor events right at initialization time, wait for the sensor to be register in the iio subsystem. Events can come at probe time (in case the kernel rebooted abruptly without switching the sensor off for instance), and be sent to IIO core before the sensor is fully registered. Fixes: aa984f1ba4a4 ("iio: cros_ec: Register to cros_ec_sensorhub when EC supports FIFO") Reported-by: Douglas Anderson <dianders@chromium.org> Signed-off-by: Gwendal Grignou <gwendal@chromium.org> Reviewed-by: Douglas Anderson <dianders@chromium.org> Link: https://lore.kernel.org/r/20220711144716.642617-1-gwendal@chromium.org Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Diffstat (limited to 'drivers/iio/common/cros_ec_sensors/cros_ec_lid_angle.c')
-rw-r--r--drivers/iio/common/cros_ec_sensors/cros_ec_lid_angle.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/iio/common/cros_ec_sensors/cros_ec_lid_angle.c b/drivers/iio/common/cros_ec_sensors/cros_ec_lid_angle.c
index 9f780fafaed9..119acb078af3 100644
--- a/drivers/iio/common/cros_ec_sensors/cros_ec_lid_angle.c
+++ b/drivers/iio/common/cros_ec_sensors/cros_ec_lid_angle.c
@@ -98,7 +98,7 @@ static int cros_ec_lid_angle_probe(struct platform_device *pdev)
if (!indio_dev)
return -ENOMEM;
- ret = cros_ec_sensors_core_init(pdev, indio_dev, false, NULL, NULL);
+ ret = cros_ec_sensors_core_init(pdev, indio_dev, false, NULL);
if (ret)
return ret;
@@ -114,7 +114,7 @@ static int cros_ec_lid_angle_probe(struct platform_device *pdev)
if (ret)
return ret;
- return devm_iio_device_register(dev, indio_dev);
+ return cros_ec_sensors_core_register(dev, indio_dev, NULL);
}
static const struct platform_device_id cros_ec_lid_angle_ids[] = {