diff options
author | Stephen Rothwell <sfr@canb.auug.org.au> | 2009-04-09 15:29:03 +1000 |
---|---|---|
committer | Stephen Rothwell <sfr@canb.auug.org.au> | 2009-04-09 15:29:03 +1000 |
commit | cbfae148c7a94a4c18d09eb933acecd90bb6cf97 (patch) | |
tree | fa25f47ad4154519b892b1595bb10dff234327c7 | |
parent | 11f2623cf0416509193865acad7e36ae05e31b1a (diff) |
Revert "parport: Use the PCI IRQ if offered"
This reverts commit 51dcdfec6a274afc1c6fce180d582add9ff512c0.
-rw-r--r-- | drivers/parport/parport_cs.c | 3 | ||||
-rw-r--r-- | drivers/parport/parport_pc.c | 57 | ||||
-rw-r--r-- | drivers/parport/parport_serial.c | 20 | ||||
-rw-r--r-- | include/linux/parport_pc.h | 11 |
4 files changed, 31 insertions, 60 deletions
diff --git a/drivers/parport/parport_cs.c b/drivers/parport/parport_cs.c index 8fdfa4f537a6..0cd5fbc7f2c2 100644 --- a/drivers/parport/parport_cs.c +++ b/drivers/parport/parport_cs.c @@ -43,7 +43,6 @@ #include <linux/timer.h> #include <linux/ioport.h> #include <linux/major.h> -#include <linux/interrupt.h> #include <linux/parport.h> #include <linux/parport_pc.h> @@ -193,7 +192,7 @@ static int parport_config(struct pcmcia_device *link) p = parport_pc_probe_port(link->io.BasePort1, link->io.BasePort2, link->irq.AssignedIRQ, PARPORT_DMA_NONE, - &link->dev, IRQF_SHARED); + &link->dev); if (p == NULL) { printk(KERN_NOTICE "parport_cs: parport_pc_probe_port() at " "0x%3x, irq %u failed\n", link->io.BasePort1, diff --git a/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c index 4e63cc9e2778..96f3bdf0ec4b 100644 --- a/drivers/parport/parport_pc.c +++ b/drivers/parport/parport_pc.c @@ -2170,11 +2170,10 @@ static int parport_dma_probe (struct parport *p) static LIST_HEAD(ports_list); static DEFINE_SPINLOCK(ports_lock); -struct parport *parport_pc_probe_port(unsigned long int base, - unsigned long int base_hi, - int irq, int dma, - struct device *dev, - int irqflags) +struct parport *parport_pc_probe_port (unsigned long int base, + unsigned long int base_hi, + int irq, int dma, + struct device *dev) { struct parport_pc_private *priv; struct parport_operations *ops; @@ -2195,11 +2194,11 @@ struct parport *parport_pc_probe_port(unsigned long int base, dev = &pdev->dev; } - ops = kmalloc(sizeof(struct parport_operations), GFP_KERNEL); + ops = kmalloc(sizeof (struct parport_operations), GFP_KERNEL); if (!ops) goto out1; - priv = kmalloc(sizeof(struct parport_pc_private), GFP_KERNEL); + priv = kmalloc (sizeof (struct parport_pc_private), GFP_KERNEL); if (!priv) goto out2; @@ -2326,8 +2325,8 @@ struct parport *parport_pc_probe_port(unsigned long int base, EPP_res = NULL; } if (p->irq != PARPORT_IRQ_NONE) { - if (request_irq(p->irq, parport_irq_handler, - irqflags, p->name, p)) { + if (request_irq (p->irq, parport_irq_handler, + 0, p->name, p)) { printk (KERN_WARNING "%s: irq %d in use, " "resorting to polled operation\n", p->name, p->irq); @@ -2531,7 +2530,7 @@ static int __devinit sio_ite_8872_probe (struct pci_dev *pdev, int autoirq, */ release_resource(base_res); if (parport_pc_probe_port (ite8872_lpt, ite8872_lpthi, - irq, PARPORT_DMA_NONE, &pdev->dev, 0)) { + irq, PARPORT_DMA_NONE, &pdev->dev)) { printk (KERN_INFO "parport_pc: ITE 8872 parallel port: io=0x%X", ite8872_lpt); @@ -2714,7 +2713,7 @@ static int __devinit sio_via_probe (struct pci_dev *pdev, int autoirq, } /* finally, do the probe with values obtained */ - if (parport_pc_probe_port (port1, port2, irq, dma, &pdev->dev, 0)) { + if (parport_pc_probe_port (port1, port2, irq, dma, &pdev->dev)) { printk (KERN_INFO "parport_pc: VIA parallel port: io=0x%X", port1); if (irq != PARPORT_IRQ_NONE) @@ -3019,7 +3018,6 @@ static int parport_pc_pci_probe (struct pci_dev *dev, for (n = 0; n < cards[i].numports; n++) { int lo = cards[i].addr[n].lo; int hi = cards[i].addr[n].hi; - int irq; unsigned long io_lo, io_hi; io_lo = pci_resource_start (dev, lo); io_hi = 0; @@ -3030,25 +3028,13 @@ static int parport_pc_pci_probe (struct pci_dev *dev, "hi" as an offset (see SYBA def.) */ /* TODO: test if sharing interrupts works */ - irq = dev->irq; - if (irq == IRQ_NONE) { - printk (KERN_DEBUG - "PCI parallel port detected: %04x:%04x, I/O at %#lx(%#lx)\n", - parport_pc_pci_tbl[i + last_sio].vendor, - parport_pc_pci_tbl[i + last_sio].device, - io_lo, io_hi); - irq = PARPORT_IRQ_NONE; - } else { - printk (KERN_DEBUG - "PCI parallel port detected: %04x:%04x, I/O at %#lx(%#lx), IRQ %d\n", - parport_pc_pci_tbl[i + last_sio].vendor, - parport_pc_pci_tbl[i + last_sio].device, - io_lo, io_hi, irq); - } + printk (KERN_DEBUG "PCI parallel port detected: %04x:%04x, " + "I/O at %#lx(%#lx)\n", + parport_pc_pci_tbl[i + last_sio].vendor, + parport_pc_pci_tbl[i + last_sio].device, io_lo, io_hi); data->ports[count] = - parport_pc_probe_port(io_lo, io_hi, irq, - PARPORT_DMA_NONE, &dev->dev, - IRQF_SHARED); + parport_pc_probe_port (io_lo, io_hi, PARPORT_IRQ_NONE, + PARPORT_DMA_NONE, &dev->dev); if (data->ports[count]) count++; } @@ -3157,8 +3143,7 @@ static int parport_pc_pnp_probe(struct pnp_dev *dev, const struct pnp_device_id dma = PARPORT_DMA_NONE; dev_info(&dev->dev, "reported by %s\n", dev->protocol->name); - if (!(pdata = parport_pc_probe_port(io_lo, io_hi, - irq, dma, &dev->dev, 0))) + if (!(pdata = parport_pc_probe_port (io_lo, io_hi, irq, dma, &dev->dev))) return -ENODEV; pnp_set_drvdata(dev,pdata); @@ -3207,11 +3192,11 @@ parport_pc_find_isa_ports (int autoirq, int autodma) { int count = 0; - if (parport_pc_probe_port(0x3bc, 0x7bc, autoirq, autodma, NULL, 0)) + if (parport_pc_probe_port(0x3bc, 0x7bc, autoirq, autodma, NULL)) count++; - if (parport_pc_probe_port(0x378, 0x778, autoirq, autodma, NULL, 0)) + if (parport_pc_probe_port(0x378, 0x778, autoirq, autodma, NULL)) count++; - if (parport_pc_probe_port(0x278, 0x678, autoirq, autodma, NULL, 0)) + if (parport_pc_probe_port(0x278, 0x678, autoirq, autodma, NULL)) count++; return count; @@ -3496,7 +3481,7 @@ static int __init parport_pc_init(void) if ((io_hi[i]) == PARPORT_IOHI_AUTO) io_hi[i] = 0x400 + io[i]; parport_pc_probe_port(io[i], io_hi[i], - irqval[i], dmaval[i], NULL, 0); + irqval[i], dmaval[i], NULL); } } else parport_pc_find_ports (irqval[0], dmaval[0]); diff --git a/drivers/parport/parport_serial.c b/drivers/parport/parport_serial.c index c3bb84ac931e..f3492110b1ad 100644 --- a/drivers/parport/parport_serial.c +++ b/drivers/parport/parport_serial.c @@ -21,7 +21,6 @@ #include <linux/module.h> #include <linux/init.h> #include <linux/pci.h> -#include <linux/interrupt.h> #include <linux/parport.h> #include <linux/parport_pc.h> #include <linux/8250_pci.h> @@ -312,7 +311,6 @@ static int __devinit parport_register (struct pci_dev *dev, int lo = card->addr[n].lo; int hi = card->addr[n].hi; unsigned long io_lo, io_hi; - int irq; if (priv->num_par == ARRAY_SIZE (priv->port)) { printk (KERN_WARNING @@ -331,20 +329,10 @@ static int __devinit parport_register (struct pci_dev *dev, "hi" as an offset (see SYBA def.) */ /* TODO: test if sharing interrupts works */ - irq = dev->irq; - if (irq == IRQ_NONE) { - dev_dbg(&dev->dev, - "PCI parallel port detected: I/O at %#lx(%#lx)\n", - io_lo, io_hi); - irq = PARPORT_IRQ_NONE; - } else { - dev_dbg(&dev->dev, - "PCI parallel port detected: I/O at %#lx(%#lx), IRQ %d\n", - io_lo, io_hi, irq); - irq = PARPORT_IRQ_NONE; - } - port = parport_pc_probe_port (io_lo, io_hi, irq, - PARPORT_DMA_NONE, &dev->dev, IRQF_SHARED); + dev_dbg(&dev->dev, "PCI parallel port detected: I/O at " + "%#lx(%#lx)\n", io_lo, io_hi); + port = parport_pc_probe_port (io_lo, io_hi, PARPORT_IRQ_NONE, + PARPORT_DMA_NONE, &dev->dev); if (port) { priv->port[priv->num_par++] = port; success = 1; diff --git a/include/linux/parport_pc.h b/include/linux/parport_pc.h index cc1767f5cca8..ea8c6d84996d 100644 --- a/include/linux/parport_pc.h +++ b/include/linux/parport_pc.h @@ -228,11 +228,10 @@ extern void parport_pc_release_resources(struct parport *p); extern int parport_pc_claim_resources(struct parport *p); /* PCMCIA code will want to get us to look at a port. Provide a mechanism. */ -extern struct parport *parport_pc_probe_port(unsigned long base, - unsigned long base_hi, - int irq, int dma, - struct device *dev, - int irqflags); -extern void parport_pc_unregister_port(struct parport *p); +extern struct parport *parport_pc_probe_port (unsigned long base, + unsigned long base_hi, + int irq, int dma, + struct device *dev); +extern void parport_pc_unregister_port (struct parport *p); #endif |