diff options
author | Lars-Peter Clausen <lars@metafoo.de> | 2012-07-02 04:54:45 -0400 |
---|---|---|
committer | Jonathan Cameron <jic23@kernel.org> | 2012-07-08 15:02:24 -0400 |
commit | a91aff1c09fc41a55ccaa115763ff77e36b527d3 (patch) | |
tree | 67399c19ed775cdd8f87997f7b03afeff89638e2 /drivers | |
parent | e1dc7bee745f74b42685b4b0b0a24895966e545e (diff) |
staging:iio: Request threaded-only IRQs with IRQF_ONESHOT
Since commit 1c6c69525b ("genirq: Reject bogus threaded irq requests") threaded
IRQs without a primary handler need to be requested with IRQF_ONESHOT, otherwise
the request will fail. This patch adds the IRQF_ONESHOT to IIO drivers where it
is missing.
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/staging/iio/accel/sca3000_core.c | 2 | ||||
-rw-r--r-- | drivers/staging/iio/adc/ad7816.c | 2 | ||||
-rw-r--r-- | drivers/staging/iio/adc/adt7310.c | 5 | ||||
-rw-r--r-- | drivers/staging/iio/adc/adt7410.c | 5 | ||||
-rw-r--r-- | drivers/staging/iio/cdc/ad7150.c | 6 |
5 files changed, 12 insertions, 8 deletions
diff --git a/drivers/staging/iio/accel/sca3000_core.c b/drivers/staging/iio/accel/sca3000_core.c index 6ec5c204ff1..c218d71abf1 100644 --- a/drivers/staging/iio/accel/sca3000_core.c +++ b/drivers/staging/iio/accel/sca3000_core.c | |||
@@ -1189,7 +1189,7 @@ static int __devinit sca3000_probe(struct spi_device *spi) | |||
1189 | ret = request_threaded_irq(spi->irq, | 1189 | ret = request_threaded_irq(spi->irq, |
1190 | NULL, | 1190 | NULL, |
1191 | &sca3000_event_handler, | 1191 | &sca3000_event_handler, |
1192 | IRQF_TRIGGER_FALLING, | 1192 | IRQF_TRIGGER_FALLING | IRQF_ONESHOT, |
1193 | "sca3000", | 1193 | "sca3000", |
1194 | indio_dev); | 1194 | indio_dev); |
1195 | if (ret) | 1195 | if (ret) |
diff --git a/drivers/staging/iio/adc/ad7816.c b/drivers/staging/iio/adc/ad7816.c index 5356b091b08..c5fb9476a2d 100644 --- a/drivers/staging/iio/adc/ad7816.c +++ b/drivers/staging/iio/adc/ad7816.c | |||
@@ -402,7 +402,7 @@ static int __devinit ad7816_probe(struct spi_device *spi_dev) | |||
402 | ret = request_threaded_irq(spi_dev->irq, | 402 | ret = request_threaded_irq(spi_dev->irq, |
403 | NULL, | 403 | NULL, |
404 | &ad7816_event_handler, | 404 | &ad7816_event_handler, |
405 | IRQF_TRIGGER_LOW, | 405 | IRQF_TRIGGER_LOW | IRQF_ONESHOT, |
406 | indio_dev->name, | 406 | indio_dev->name, |
407 | indio_dev); | 407 | indio_dev); |
408 | if (ret) | 408 | if (ret) |
diff --git a/drivers/staging/iio/adc/adt7310.c b/drivers/staging/iio/adc/adt7310.c index e5f1ed7f869..44dcf632f54 100644 --- a/drivers/staging/iio/adc/adt7310.c +++ b/drivers/staging/iio/adc/adt7310.c | |||
@@ -778,7 +778,7 @@ static int __devinit adt7310_probe(struct spi_device *spi_dev) | |||
778 | ret = request_threaded_irq(spi_dev->irq, | 778 | ret = request_threaded_irq(spi_dev->irq, |
779 | NULL, | 779 | NULL, |
780 | &adt7310_event_handler, | 780 | &adt7310_event_handler, |
781 | irq_flags, | 781 | irq_flags | IRQF_ONESHOT, |
782 | indio_dev->name, | 782 | indio_dev->name, |
783 | indio_dev); | 783 | indio_dev); |
784 | if (ret) | 784 | if (ret) |
@@ -790,7 +790,8 @@ static int __devinit adt7310_probe(struct spi_device *spi_dev) | |||
790 | ret = request_threaded_irq(adt7310_platform_data[0], | 790 | ret = request_threaded_irq(adt7310_platform_data[0], |
791 | NULL, | 791 | NULL, |
792 | &adt7310_event_handler, | 792 | &adt7310_event_handler, |
793 | adt7310_platform_data[1], | 793 | adt7310_platform_data[1] | |
794 | IRQF_ONESHOT, | ||
794 | indio_dev->name, | 795 | indio_dev->name, |
795 | indio_dev); | 796 | indio_dev); |
796 | if (ret) | 797 | if (ret) |
diff --git a/drivers/staging/iio/adc/adt7410.c b/drivers/staging/iio/adc/adt7410.c index 917b6921e24..a2defe64d10 100644 --- a/drivers/staging/iio/adc/adt7410.c +++ b/drivers/staging/iio/adc/adt7410.c | |||
@@ -742,7 +742,7 @@ static int __devinit adt7410_probe(struct i2c_client *client, | |||
742 | ret = request_threaded_irq(client->irq, | 742 | ret = request_threaded_irq(client->irq, |
743 | NULL, | 743 | NULL, |
744 | &adt7410_event_handler, | 744 | &adt7410_event_handler, |
745 | IRQF_TRIGGER_LOW, | 745 | IRQF_TRIGGER_LOW | IRQF_ONESHOT, |
746 | id->name, | 746 | id->name, |
747 | indio_dev); | 747 | indio_dev); |
748 | if (ret) | 748 | if (ret) |
@@ -754,7 +754,8 @@ static int __devinit adt7410_probe(struct i2c_client *client, | |||
754 | ret = request_threaded_irq(adt7410_platform_data[0], | 754 | ret = request_threaded_irq(adt7410_platform_data[0], |
755 | NULL, | 755 | NULL, |
756 | &adt7410_event_handler, | 756 | &adt7410_event_handler, |
757 | adt7410_platform_data[1], | 757 | adt7410_platform_data[1] | |
758 | IRQF_ONESHOT, | ||
758 | id->name, | 759 | id->name, |
759 | indio_dev); | 760 | indio_dev); |
760 | if (ret) | 761 | if (ret) |
diff --git a/drivers/staging/iio/cdc/ad7150.c b/drivers/staging/iio/cdc/ad7150.c index a16d1a22db0..6a4041417d4 100644 --- a/drivers/staging/iio/cdc/ad7150.c +++ b/drivers/staging/iio/cdc/ad7150.c | |||
@@ -585,7 +585,8 @@ static int __devinit ad7150_probe(struct i2c_client *client, | |||
585 | NULL, | 585 | NULL, |
586 | &ad7150_event_handler, | 586 | &ad7150_event_handler, |
587 | IRQF_TRIGGER_RISING | | 587 | IRQF_TRIGGER_RISING | |
588 | IRQF_TRIGGER_FALLING, | 588 | IRQF_TRIGGER_FALLING | |
589 | IRQF_ONESHOT, | ||
589 | "ad7150_irq1", | 590 | "ad7150_irq1", |
590 | indio_dev); | 591 | indio_dev); |
591 | if (ret) | 592 | if (ret) |
@@ -598,7 +599,8 @@ static int __devinit ad7150_probe(struct i2c_client *client, | |||
598 | NULL, | 599 | NULL, |
599 | &ad7150_event_handler, | 600 | &ad7150_event_handler, |
600 | IRQF_TRIGGER_RISING | | 601 | IRQF_TRIGGER_RISING | |
601 | IRQF_TRIGGER_FALLING, | 602 | IRQF_TRIGGER_FALLING | |
603 | IRQF_ONESHOT, | ||
602 | "ad7150_irq2", | 604 | "ad7150_irq2", |
603 | indio_dev); | 605 | indio_dev); |
604 | if (ret) | 606 | if (ret) |