usb: isp1760: Set IRQF_SHARED flag in core code
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Tue, 20 Jan 2015 22:55:58 +0000 (00:55 +0200)
committerFelipe Balbi <balbi@ti.com>
Tue, 27 Jan 2015 15:39:22 +0000 (09:39 -0600)
The IRQF_SHARED flag needs to be set regardless of the bus type. Don't
require glue code to set it manually.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/host/isp1760-core.c
drivers/usb/host/isp1760-if.c

index d38efa0..35278a8 100644 (file)
@@ -43,8 +43,8 @@ int isp1760_register(struct resource *mem, int irq, unsigned long irqflags,
        if (IS_ERR(isp->regs))
                return PTR_ERR(isp->regs);
 
-       ret = isp1760_hcd_register(&isp->hcd, isp->regs, mem, irq, irqflags,
-                                  dev, devflags);
+       ret = isp1760_hcd_register(&isp->hcd, isp->regs, mem, irq,
+                                  irqflags | IRQF_SHARED, dev, devflags);
        if (ret < 0)
                return ret;
 
index f2a3990..c2a94c9 100644 (file)
@@ -142,8 +142,8 @@ static int isp1761_pci_probe(struct pci_dev *dev,
        pci_set_master(dev);
 
        dev->dev.dma_mask = NULL;
-       ret = isp1760_register(&dev->resource[3], dev->irq, IRQF_SHARED,
-                              &dev->dev, devflags);
+       ret = isp1760_register(&dev->resource[3], dev->irq, 0, &dev->dev,
+                              devflags);
        if (ret < 0)
                goto error;
 
@@ -190,7 +190,7 @@ static struct pci_driver isp1761_pci_driver = {
 
 static int isp1760_plat_probe(struct platform_device *pdev)
 {
-       unsigned long irqflags = IRQF_SHARED;
+       unsigned long irqflags;
        unsigned int devflags = 0;
        struct resource *mem_res;
        struct resource *irq_res;
@@ -203,8 +203,7 @@ static int isp1760_plat_probe(struct platform_device *pdev)
                pr_warning("isp1760: IRQ resource not available\n");
                return -ENODEV;
        }
-
-       irqflags |= irq_res->flags & IRQF_TRIGGER_MASK;
+       irqflags = irq_res->flags & IRQF_TRIGGER_MASK;
 
        if (IS_ENABLED(CONFIG_OF) && pdev->dev.of_node) {
                struct device_node *dp = pdev->dev.of_node;