OSDN Git Service

iio: hid-sensors: use iio_triggered_buffer_setup_ext()
authorAlexandru Ardelean <alexandru.ardelean@analog.com>
Tue, 29 Sep 2020 12:59:48 +0000 (15:59 +0300)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sat, 21 Nov 2020 14:53:33 +0000 (14:53 +0000)
This change switches to the new iio_triggered_buffer_setup_ext()
function and removes the iio_buffer_set_attrs() call, for assigning the
HW FIFO attributes to the buffer.

Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20200929125949.69934-9-alexandru.ardelean@analog.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/common/hid-sensors/hid-sensor-trigger.c

index ff37579..064c32b 100644 (file)
@@ -84,15 +84,6 @@ static const struct attribute *hid_sensor_fifo_attributes[] = {
        NULL,
 };
 
-static void hid_sensor_setup_batch_mode(struct iio_dev *indio_dev,
-                                       struct hid_sensor_common *st)
-{
-       if (!hid_sensor_batch_mode_supported(st))
-               return;
-
-       iio_buffer_set_attrs(indio_dev->buffer, hid_sensor_fifo_attributes);
-}
-
 static int _hid_sensor_power_state(struct hid_sensor_common *st, bool state)
 {
        int state_val;
@@ -247,11 +238,18 @@ static const struct iio_trigger_ops hid_sensor_trigger_ops = {
 int hid_sensor_setup_trigger(struct iio_dev *indio_dev, const char *name,
                                struct hid_sensor_common *attrb)
 {
+       const struct attribute **fifo_attrs;
        int ret;
        struct iio_trigger *trig;
 
-       ret = iio_triggered_buffer_setup(indio_dev, &iio_pollfunc_store_time,
-                                        NULL, NULL);
+       if (hid_sensor_batch_mode_supported(attrb))
+               fifo_attrs = hid_sensor_fifo_attributes;
+       else
+               fifo_attrs = NULL;
+
+       ret = iio_triggered_buffer_setup_ext(indio_dev,
+                                            &iio_pollfunc_store_time,
+                                            NULL, NULL, fifo_attrs);
        if (ret) {
                dev_err(&indio_dev->dev, "Triggered Buffer Setup Failed\n");
                return ret;
@@ -276,8 +274,6 @@ int hid_sensor_setup_trigger(struct iio_dev *indio_dev, const char *name,
        attrb->trigger = trig;
        indio_dev->trig = iio_trigger_get(trig);
 
-       hid_sensor_setup_batch_mode(indio_dev, attrb);
-
        ret = pm_runtime_set_active(&indio_dev->dev);
        if (ret)
                goto error_unreg_trigger;