[PATCH][RFC] Remove uneeded resource structures from pci_dev

From: Adam Belay (ambx1_at_neo.rr.com)
Date: 01/30/04

  • Next message: Tom Epperly: "Re: CPU lockup during halt for Shuttle SB61G2 p4 with hyperthreading 2.4.24 (untained kernel)"
    Date:	Fri, 30 Jan 2004 00:48:41 +0000
    To: greg@kroah.com, Russell King <rmk@arm.linux.org.uk>
    
    

    Hi,

    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.

    Thanks,
    Adam

    This patch has only been tested for compilation.

    --- a/drivers/serial/8250_pci.c 2004-01-09 06:59:55.000000000 +0000
    +++ b/drivers/serial/8250_pci.c 2004-01-30 00:41:49.000000000 +0000
    @@ -43,20 +43,12 @@
     #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 _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 @@
                     .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,
    --- a/include/linux/pci.h 2004-01-09 06:59:33.000000000 +0000
    +++ b/include/linux/pci.h 2004-01-30 00:09:47.000000000 +0000
    @@ -416,8 +416,6 @@
              */
             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 */
     
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/


  • Next message: Tom Epperly: "Re: CPU lockup during halt for Shuttle SB61G2 p4 with hyperthreading 2.4.24 (untained kernel)"

    Relevant Pages