diff options
Diffstat (limited to 'drivers/staging/iio/gyro/adis16260_core.c')
-rw-r--r-- | drivers/staging/iio/gyro/adis16260_core.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/drivers/staging/iio/gyro/adis16260_core.c b/drivers/staging/iio/gyro/adis16260_core.c index acd17e50df5..73157b21252 100644 --- a/drivers/staging/iio/gyro/adis16260_core.c +++ b/drivers/staging/iio/gyro/adis16260_core.c | |||
@@ -577,7 +577,7 @@ static const struct iio_info adis16260_info = { | |||
577 | 577 | ||
578 | static int __devinit adis16260_probe(struct spi_device *spi) | 578 | static int __devinit adis16260_probe(struct spi_device *spi) |
579 | { | 579 | { |
580 | int ret, regdone = 0; | 580 | int ret; |
581 | struct adis16260_platform_data *pd = spi->dev.platform_data; | 581 | struct adis16260_platform_data *pd = spi->dev.platform_data; |
582 | struct adis16260_state *st; | 582 | struct adis16260_state *st; |
583 | struct iio_dev *indio_dev; | 583 | struct iio_dev *indio_dev; |
@@ -625,10 +625,6 @@ static int __devinit adis16260_probe(struct spi_device *spi) | |||
625 | if (ret) | 625 | if (ret) |
626 | goto error_free_dev; | 626 | goto error_free_dev; |
627 | 627 | ||
628 | ret = iio_device_register(indio_dev); | ||
629 | if (ret) | ||
630 | goto error_unreg_ring_funcs; | ||
631 | regdone = 1; | ||
632 | ret = iio_ring_buffer_register(indio_dev, | 628 | ret = iio_ring_buffer_register(indio_dev, |
633 | indio_dev->channels, | 629 | indio_dev->channels, |
634 | ARRAY_SIZE(adis16260_channels_x)); | 630 | ARRAY_SIZE(adis16260_channels_x)); |
@@ -654,6 +650,10 @@ static int __devinit adis16260_probe(struct spi_device *spi) | |||
654 | ret = adis16260_initial_setup(indio_dev); | 650 | ret = adis16260_initial_setup(indio_dev); |
655 | if (ret) | 651 | if (ret) |
656 | goto error_remove_trigger; | 652 | goto error_remove_trigger; |
653 | ret = iio_device_register(indio_dev); | ||
654 | if (ret) | ||
655 | goto error_remove_trigger; | ||
656 | |||
657 | return 0; | 657 | return 0; |
658 | 658 | ||
659 | error_remove_trigger: | 659 | error_remove_trigger: |
@@ -663,10 +663,7 @@ error_uninitialize_ring: | |||
663 | error_unreg_ring_funcs: | 663 | error_unreg_ring_funcs: |
664 | adis16260_unconfigure_ring(indio_dev); | 664 | adis16260_unconfigure_ring(indio_dev); |
665 | error_free_dev: | 665 | error_free_dev: |
666 | if (regdone) | 666 | iio_free_device(indio_dev); |
667 | iio_device_unregister(indio_dev); | ||
668 | else | ||
669 | iio_free_device(indio_dev); | ||
670 | error_ret: | 667 | error_ret: |
671 | return ret; | 668 | return ret; |
672 | } | 669 | } |