OSDN Git Service

[media] radio-si470x-i2c: Pass the IRQF_ONESHOT flag
authorFabio Estevam <fabio.estevam@freescale.com>
Mon, 1 Jun 2015 17:14:07 +0000 (14:14 -0300)
committerMauro Carvalho Chehab <mchehab@osg.samsung.com>
Sat, 6 Jun 2015 10:34:08 +0000 (07:34 -0300)
Since commit 1c6c69525b40 ("genirq: Reject bogus threaded irq requests")
threaded IRQs without a primary handler need to be requested with
IRQF_ONESHOT, otherwise the request will fail.

So pass the IRQF_ONESHOT flag in this case.

The semantic patch that makes this change is available
in scripts/coccinelle/misc/irqf_oneshot.cocci.

Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
drivers/media/radio/si470x/radio-si470x-i2c.c

index 2a497c8..49fe845 100644 (file)
@@ -421,7 +421,8 @@ static int si470x_i2c_probe(struct i2c_client *client,
        init_waitqueue_head(&radio->read_queue);
 
        retval = request_threaded_irq(client->irq, NULL, si470x_i2c_interrupt,
-                       IRQF_TRIGGER_FALLING, DRIVER_NAME, radio);
+                       IRQF_TRIGGER_FALLING | IRQF_ONESHOT, DRIVER_NAME,
+                       radio);
        if (retval) {
                dev_err(&client->dev, "Failed to register interrupt\n");
                goto err_rds;