]> Pileus Git - ~andy/linux/blobdiff - drivers/iio/gyro/st_gyro_core.c
Merge tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[~andy/linux] / drivers / iio / gyro / st_gyro_core.c
index f9ed3488c3145125b4c6a5709180fc4fa32dbbce..e13c2b0bf3d1ae27de590555d349b6b31632f112 100644 (file)
@@ -60,7 +60,7 @@
 #define ST_GYRO_1_BDU_ADDR                     0x23
 #define ST_GYRO_1_BDU_MASK                     0x80
 #define ST_GYRO_1_DRDY_IRQ_ADDR                        0x22
-#define ST_GYRO_1_DRDY_IRQ_MASK                        0x08
+#define ST_GYRO_1_DRDY_IRQ_INT2_MASK           0x08
 #define ST_GYRO_1_MULTIREAD_BIT                        true
 
 /* CUSTOM VALUES FOR SENSOR 2 */
@@ -84,7 +84,7 @@
 #define ST_GYRO_2_BDU_ADDR                     0x23
 #define ST_GYRO_2_BDU_MASK                     0x80
 #define ST_GYRO_2_DRDY_IRQ_ADDR                        0x22
-#define ST_GYRO_2_DRDY_IRQ_MASK                        0x08
+#define ST_GYRO_2_DRDY_IRQ_INT2_MASK           0x08
 #define ST_GYRO_2_MULTIREAD_BIT                        true
 
 static const struct iio_chan_spec st_gyro_16bit_channels[] = {
@@ -158,7 +158,7 @@ static const struct st_sensors st_gyro_sensors[] = {
                },
                .drdy_irq = {
                        .addr = ST_GYRO_1_DRDY_IRQ_ADDR,
-                       .mask = ST_GYRO_1_DRDY_IRQ_MASK,
+                       .mask_int2 = ST_GYRO_1_DRDY_IRQ_INT2_MASK,
                },
                .multi_read_bit = ST_GYRO_1_MULTIREAD_BIT,
                .bootime = 2,
@@ -221,7 +221,7 @@ static const struct st_sensors st_gyro_sensors[] = {
                },
                .drdy_irq = {
                        .addr = ST_GYRO_2_DRDY_IRQ_ADDR,
-                       .mask = ST_GYRO_2_DRDY_IRQ_MASK,
+                       .mask_int2 = ST_GYRO_2_DRDY_IRQ_INT2_MASK,
                },
                .multi_read_bit = ST_GYRO_2_MULTIREAD_BIT,
                .bootime = 2,
@@ -302,7 +302,8 @@ static const struct iio_trigger_ops st_gyro_trigger_ops = {
 #define ST_GYRO_TRIGGER_OPS NULL
 #endif
 
-int st_gyro_common_probe(struct iio_dev *indio_dev)
+int st_gyro_common_probe(struct iio_dev *indio_dev,
+                                       struct st_sensors_platform_data *pdata)
 {
        int err;
        struct st_sensor_data *gdata = iio_priv(indio_dev);
@@ -324,7 +325,7 @@ int st_gyro_common_probe(struct iio_dev *indio_dev)
                                                &gdata->sensor->fs.fs_avl[0];
        gdata->odr = gdata->sensor->odr.odr_avl[0].hz;
 
-       err = st_sensors_init_sensor(indio_dev);
+       err = st_sensors_init_sensor(indio_dev, pdata);
        if (err < 0)
                goto st_gyro_common_probe_error;
 
@@ -365,7 +366,6 @@ void st_gyro_common_remove(struct iio_dev *indio_dev)
                st_sensors_deallocate_trigger(indio_dev);
                st_gyro_deallocate_ring(indio_dev);
        }
-       iio_device_free(indio_dev);
 }
 EXPORT_SYMBOL(st_gyro_common_remove);