]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
usb: musb: musbhsdma: fix IRQ check
authorSergei Shtylyov <sshtylyov@ru.mvista.com>
Mon, 20 Aug 2012 18:34:46 +0000 (22:34 +0400)
committerFelipe Balbi <balbi@ti.com>
Thu, 6 Sep 2012 16:52:28 +0000 (19:52 +0300)
dma_controller_create() in this MUSB DMA driver only regards 0 as a wrong IRQ
number, despite platform_get_irq_byname() that it calls returns -ENXIO in that
case. It leads to calling request_irq() with a negative IRQ number, and when it
naturally fails, the following is printed to the console:

request_irq -6 failed!

and the DMA controller is not created.

Fix this function to filter out the error values as well as 0.

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/musb/musbhsdma.c

index 57a608584e160248708aca39570a7e30bf55d7a5..c1be687e00ec722524f8807ff8d628ec7a5d0798 100644 (file)
@@ -388,7 +388,7 @@ dma_controller_create(struct musb *musb, void __iomem *base)
        struct platform_device *pdev = to_platform_device(dev);
        int irq = platform_get_irq_byname(pdev, "dma");
 
-       if (irq == 0) {
+       if (irq <= 0) {
                dev_err(dev, "No DMA interrupt line!\n");
                return NULL;
        }