Browse Source

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>
Ming Lei 13 years ago
parent
commit
8f9d973a0d
1 changed files with 2 additions and 2 deletions
  1. 2 2
      drivers/usb/otg/twl6030-usb.c

+ 2 - 2
drivers/usb/otg/twl6030-usb.c

@@ -455,7 +455,7 @@ static int __devinit twl6030_usb_probe(struct platform_device *pdev)
 
 	twl->irq_enabled = true;
 	status = request_threaded_irq(twl->irq1, NULL, twl6030_usbotg_irq,
-			IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
+			IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING | IRQF_ONESHOT,
 			"twl6030_usb", twl);
 	if (status < 0) {
 		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)
 	}
 
 	status = request_threaded_irq(twl->irq2, NULL, twl6030_usb_irq,
-			IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
+			IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING | IRQF_ONESHOT,
 			"twl6030_usb", twl);
 	if (status < 0) {
 		dev_err(&pdev->dev, "can't get IRQ %d, err %d\n",