diff options
author | Ming Lei <ming.lei@canonical.com> | 2012-05-16 23:38:24 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-05-17 12:49:23 -0400 |
commit | 8f9d973a0daee49e0b9b924c724b18b0170ec9cb (patch) | |
tree | a6ec5ab2a2d140f341f0fcc2e58e7ae101b4f56c /drivers/usb/otg/twl6030-usb.c | |
parent | db2c8624847b0b67c04c3d6271823f3fee671e26 (diff) |
USB: twl6030-usb: pass IRQF_ONESHOT to request_threaded_irq
The flag of IRQF_ONESHOT should be passed to request_threaded_irq,
otherwise the following failure message will be dumped because
hardware handler is defined as NULL:
[ 2.271148] genirq: Threaded irq requested with handler=NULL and
!ONESHOT for irq 356
[ 2.279541] twl6030_usb twl6030_usb: can't get IRQ 356, err -22
[ 2.285919] twl6030_usb: probe of twl6030_usb failed with error -22
The patch fixes the twl6030-usb probe failure.
Signed-off-by: Ming Lei <ming.lei@canonical.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/otg/twl6030-usb.c')
-rw-r--r-- | drivers/usb/otg/twl6030-usb.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/usb/otg/twl6030-usb.c b/drivers/usb/otg/twl6030-usb.c index e3fa387ca81e..d2a9a8e691b9 100644 --- a/drivers/usb/otg/twl6030-usb.c +++ b/drivers/usb/otg/twl6030-usb.c | |||
@@ -455,7 +455,7 @@ static int __devinit twl6030_usb_probe(struct platform_device *pdev) | |||
455 | 455 | ||
456 | twl->irq_enabled = true; | 456 | twl->irq_enabled = true; |
457 | status = request_threaded_irq(twl->irq1, NULL, twl6030_usbotg_irq, | 457 | status = request_threaded_irq(twl->irq1, NULL, twl6030_usbotg_irq, |
458 | IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING, | 458 | IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING | IRQF_ONESHOT, |
459 | "twl6030_usb", twl); | 459 | "twl6030_usb", twl); |
460 | if (status < 0) { | 460 | if (status < 0) { |
461 | dev_err(&pdev->dev, "can't get IRQ %d, err %d\n", | 461 | dev_err(&pdev->dev, "can't get IRQ %d, err %d\n", |
@@ -467,7 +467,7 @@ static int __devinit twl6030_usb_probe(struct platform_device *pdev) | |||
467 | } | 467 | } |
468 | 468 | ||
469 | status = request_threaded_irq(twl->irq2, NULL, twl6030_usb_irq, | 469 | status = request_threaded_irq(twl->irq2, NULL, twl6030_usb_irq, |
470 | IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING, | 470 | IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING | IRQF_ONESHOT, |
471 | "twl6030_usb", twl); | 471 | "twl6030_usb", twl); |
472 | if (status < 0) { | 472 | if (status < 0) { |
473 | dev_err(&pdev->dev, "can't get IRQ %d, err %d\n", | 473 | dev_err(&pdev->dev, "can't get IRQ %d, err %d\n", |