BruceBushby / inv_mpu

Invensense MPU6500 I2C Kernel Device Driver
4 stars 1 forks source link

In 4.0 the buffer registration code moved. #3

Open cheako opened 9 years ago

cheako commented 9 years ago
Index: linux-4.1.3/drivers/iio/imu/inv_mpu/inv_mpu_core.c
===================================================================
--- linux-4.1.3.orig/drivers/iio/imu/inv_mpu/inv_mpu_core.c
+++ linux-4.1.3/drivers/iio/imu/inv_mpu/inv_mpu_core.c
@@ -2924,17 +2924,11 @@ static int inv_mpu_probe(struct i2c_clie
        pr_err("configure ring buffer fail\n");
        goto out_free;
    }
-   result = iio_buffer_register(indio_dev, indio_dev->channels,
-                   indio_dev->num_channels);
-   if (result) {
-       pr_err("ring buffer register fail\n");
-       goto out_unreg_ring;
-   }
    st->irq = client->irq;
    result = inv_mpu_probe_trigger(indio_dev);
    if (result) {
        pr_err("trigger probe fail\n");
-       goto out_remove_ring;
+       goto out_unreg_ring;
    }

    /* Tell the i2c counter, we have an IRQ */
@@ -2982,8 +2976,6 @@ out_unreg_iio:
 out_remove_trigger:
    if (indio_dev->modes & INDIO_BUFFER_TRIGGERED)
        inv_mpu_remove_trigger(indio_dev);
-out_remove_ring:
-   iio_buffer_unregister(indio_dev);
 out_unreg_ring:
    inv_mpu_unconfigure_ring(indio_dev);
 out_free:
cheako commented 9 years ago

Missed one:

@@ -3032,7 +3024,6 @@ static int inv_mpu_remove(struct i2c_cli
    iio_device_unregister(indio_dev);
    if (indio_dev->modes & INDIO_BUFFER_TRIGGERED)
        inv_mpu_remove_trigger(indio_dev);
-   iio_buffer_unregister(indio_dev);
    inv_mpu_unconfigure_ring(indio_dev);
    iio_device_free(indio_dev);