diff options
Diffstat (limited to 'drivers/staging/iio/accel/adis16204_core.c')
-rw-r--r-- | drivers/staging/iio/accel/adis16204_core.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/drivers/staging/iio/accel/adis16204_core.c b/drivers/staging/iio/accel/adis16204_core.c index 42a37bb0136..e0b87840133 100644 --- a/drivers/staging/iio/accel/adis16204_core.c +++ b/drivers/staging/iio/accel/adis16204_core.c | |||
@@ -494,7 +494,7 @@ static const struct iio_info adis16204_info = { | |||
494 | 494 | ||
495 | static int __devinit adis16204_probe(struct spi_device *spi) | 495 | static int __devinit adis16204_probe(struct spi_device *spi) |
496 | { | 496 | { |
497 | int ret, regdone = 0; | 497 | int ret; |
498 | struct adis16204_state *st; | 498 | struct adis16204_state *st; |
499 | struct iio_dev *indio_dev; | 499 | struct iio_dev *indio_dev; |
500 | 500 | ||
@@ -521,11 +521,6 @@ static int __devinit adis16204_probe(struct spi_device *spi) | |||
521 | if (ret) | 521 | if (ret) |
522 | goto error_free_dev; | 522 | goto error_free_dev; |
523 | 523 | ||
524 | ret = iio_device_register(indio_dev); | ||
525 | if (ret) | ||
526 | goto error_unreg_ring_funcs; | ||
527 | regdone = 1; | ||
528 | |||
529 | ret = iio_ring_buffer_register(indio_dev, | 524 | ret = iio_ring_buffer_register(indio_dev, |
530 | adis16204_channels, | 525 | adis16204_channels, |
531 | ARRAY_SIZE(adis16204_channels)); | 526 | ARRAY_SIZE(adis16204_channels)); |
@@ -544,6 +539,10 @@ static int __devinit adis16204_probe(struct spi_device *spi) | |||
544 | ret = adis16204_initial_setup(indio_dev); | 539 | ret = adis16204_initial_setup(indio_dev); |
545 | if (ret) | 540 | if (ret) |
546 | goto error_remove_trigger; | 541 | goto error_remove_trigger; |
542 | ret = iio_device_register(indio_dev); | ||
543 | if (ret) | ||
544 | goto error_remove_trigger; | ||
545 | |||
547 | return 0; | 546 | return 0; |
548 | 547 | ||
549 | error_remove_trigger: | 548 | error_remove_trigger: |
@@ -553,10 +552,7 @@ error_uninitialize_ring: | |||
553 | error_unreg_ring_funcs: | 552 | error_unreg_ring_funcs: |
554 | adis16204_unconfigure_ring(indio_dev); | 553 | adis16204_unconfigure_ring(indio_dev); |
555 | error_free_dev: | 554 | error_free_dev: |
556 | if (regdone) | 555 | iio_free_device(indio_dev); |
557 | iio_device_unregister(indio_dev); | ||
558 | else | ||
559 | iio_free_device(indio_dev); | ||
560 | error_ret: | 556 | error_ret: |
561 | return ret; | 557 | return ret; |
562 | } | 558 | } |