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;
 
 
        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;
 
 
 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;
                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;