diff options
Diffstat (limited to 'drivers/staging/iio/light/tsl2563.c')
-rw-r--r-- | drivers/staging/iio/light/tsl2563.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/staging/iio/light/tsl2563.c b/drivers/staging/iio/light/tsl2563.c index 7a57791521f..370777245f8 100644 --- a/drivers/staging/iio/light/tsl2563.c +++ b/drivers/staging/iio/light/tsl2563.c | |||
@@ -751,9 +751,6 @@ static int __devinit tsl2563_probe(struct i2c_client *client, | |||
751 | indio_dev->info = &tsl2563_info; | 751 | indio_dev->info = &tsl2563_info; |
752 | else | 752 | else |
753 | indio_dev->info = &tsl2563_info_no_irq; | 753 | indio_dev->info = &tsl2563_info_no_irq; |
754 | ret = iio_device_register(indio_dev); | ||
755 | if (ret) | ||
756 | goto fail1; | ||
757 | if (client->irq) { | 754 | if (client->irq) { |
758 | ret = request_threaded_irq(client->irq, | 755 | ret = request_threaded_irq(client->irq, |
759 | NULL, | 756 | NULL, |
@@ -772,12 +769,16 @@ static int __devinit tsl2563_probe(struct i2c_client *client, | |||
772 | /* The interrupt cannot yet be enabled so this is fine without lock */ | 769 | /* The interrupt cannot yet be enabled so this is fine without lock */ |
773 | schedule_delayed_work(&chip->poweroff_work, 5 * HZ); | 770 | schedule_delayed_work(&chip->poweroff_work, 5 * HZ); |
774 | 771 | ||
772 | ret = iio_device_register(indio_dev); | ||
773 | if (ret) | ||
774 | goto fail3; | ||
775 | |||
775 | return 0; | 776 | return 0; |
776 | fail3: | 777 | fail3: |
777 | if (client->irq) | 778 | if (client->irq) |
778 | free_irq(client->irq, indio_dev); | 779 | free_irq(client->irq, indio_dev); |
779 | fail2: | 780 | fail2: |
780 | iio_device_unregister(indio_dev); | 781 | iio_free_device(indio_dev); |
781 | fail1: | 782 | fail1: |
782 | kfree(chip); | 783 | kfree(chip); |
783 | return err; | 784 | return err; |