]> git.hungrycats.org Git - linux/commitdiff
[PATCH] PCI: Remove uneeded resource structures from pci_dev
authorAdam Belay <ambx1@neo.rr.com>
Fri, 30 Jan 2004 08:34:48 +0000 (00:34 -0800)
committerGreg Kroah-Hartman <greg@kroah.com>
Fri, 30 Jan 2004 08:34:48 +0000 (00:34 -0800)
The following patch remove irq_resource and dma_resource from pci_dev.  It
appears that the serial pci driver depends on irq_resource, however, it may be
broken portions of an old quirk.  I attempted to maintain the existing behavior
while removing irq_resource.  I changed FL_IRQRESOURCE to FL_NOIRQ.  Russell,
could you provide any comments?  irq_resource and dma_resource are most likely
remnants from when pci_dev was shared with pnp.

drivers/serial/8250_pci.c
include/linux/pci.h

index bb13d16c8a2f588e729ae01ac22e24e2f1362c0f..16937439bd29532af517c71ca10a09ec2890e15c 100644 (file)
 #define FL_BASE4               0x0004
 #define FL_GET_BASE(x)         (x & FL_BASE_MASK)
 
-#define FL_IRQ_MASK            (0x0007 << 4)
-#define FL_IRQBASE0            (0x0000 << 4)
-#define FL_IRQBASE1            (0x0001 << 4)
-#define FL_IRQBASE2            (0x0002 << 4)
-#define FL_IRQBASE3            (0x0003 << 4)
-#define FL_IRQBASE4            (0x0004 << 4)
-#define FL_GET_IRQBASE(x)      ((x & FL_IRQ_MASK) >> 4)
-
 /* Use successive BARs (PCI base address registers),
    else use offset into some specified BAR */
 #define FL_BASE_BARS           0x0008
 
-/* Use the irq resource table instead of dev->irq */
-#define FL_IRQRESOURCE         0x0080
+/* do not assign an irq */
+#define FL_NOIRQ               0x0080
 
 /* Use the Base address register size to cap number of ports */
 #define FL_REGION_SZ_CAP       0x0100
@@ -850,17 +842,10 @@ static struct pci_serial_quirk *find_quirk(struct pci_dev *dev)
 static _INLINE_ int
 get_pci_irq(struct pci_dev *dev, struct pci_board *board, int idx)
 {
-       int base_idx;
-
-       if ((board->flags & FL_IRQRESOURCE) == 0)
-               return dev->irq;
-
-       base_idx = FL_GET_IRQBASE(board->flags);
-
-       if (base_idx > DEVICE_COUNT_IRQ)
+       if (board->flags & FL_NOIRQ)
                return 0;
-       
-       return dev->irq_resource[base_idx].start;
+       else
+               return dev->irq;
 }
 
 /*
@@ -1314,7 +1299,7 @@ static struct pci_board pci_boards[] __devinitdata = {
                .first_offset   = 0x10000,
        },
        [pbn_sgi_ioc3] = {
-               .flags          = FL_BASE0|FL_IRQRESOURCE,
+               .flags          = FL_BASE0|FL_NOIRQ,
                .num_ports      = 1,
                .base_baud      = 458333,
                .uart_offset    = 8,
index bc51ca9edef10b6112f5e8a4d52ea99e5c032bd9..612d14e9058776e23f28928b9880415ea65e63ea 100644 (file)
@@ -416,8 +416,6 @@ struct pci_dev {
         */
        unsigned int    irq;
        struct resource resource[DEVICE_COUNT_RESOURCE]; /* I/O and memory regions + expansion ROMs */
-       struct resource dma_resource[DEVICE_COUNT_DMA];
-       struct resource irq_resource[DEVICE_COUNT_IRQ];
 
        char *          slot_name;      /* pointer to dev.bus_id */