lkml.org 
[lkml]   [2008]   [Apr]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 27/54] PNP: add pnp_get_resource() interface
    This adds a pnp_get_resource() that works the same way as
    platform_get_resource(). This will enable us to consolidate
    many pnp_resource_table references in one place, which will
    make it easier to make the table dynamic.

    Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
    Acked-By: Rene Herman <rene.herman@gmail.com>

    ---
    drivers/pnp/resource.c | 27 +++++++++++++++++++++++++++
    include/linux/pnp.h | 1 +
    2 files changed, 28 insertions(+)

    Index: work10/include/linux/pnp.h
    ===================================================================
    --- work10.orig/include/linux/pnp.h 2008-04-25 11:14:59.000000000 -0600
    +++ work10/include/linux/pnp.h 2008-04-25 11:15:01.000000000 -0600
    @@ -25,6 +25,7 @@
    /*
    * Resource Management
    */
    +struct resource *pnp_get_resource(struct pnp_dev *, unsigned int, unsigned int);

    /* Use these instead of directly reading pnp_dev to get resource information */
    #define pnp_port_start(dev,bar) ((dev)->res.port_resource[(bar)].start)
    Index: work10/drivers/pnp/resource.c
    ===================================================================
    --- work10.orig/drivers/pnp/resource.c 2008-04-25 11:14:55.000000000 -0600
    +++ work10/drivers/pnp/resource.c 2008-04-25 11:15:01.000000000 -0600
    @@ -487,6 +487,33 @@
    #endif
    }

    +struct resource *pnp_get_resource(struct pnp_dev *dev,
    + unsigned int type, unsigned int num)
    +{
    + struct pnp_resource_table *res = &dev->res;
    +
    + switch (type) {
    + case IORESOURCE_IO:
    + if (num >= PNP_MAX_PORT)
    + return NULL;
    + return &res->port_resource[num];
    + case IORESOURCE_MEM:
    + if (num >= PNP_MAX_MEM)
    + return NULL;
    + return &res->mem_resource[num];
    + case IORESOURCE_IRQ:
    + if (num >= PNP_MAX_IRQ)
    + return NULL;
    + return &res->irq_resource[num];
    + case IORESOURCE_DMA:
    + if (num >= PNP_MAX_DMA)
    + return NULL;
    + return &res->dma_resource[num];
    + }
    + return NULL;
    +}
    +EXPORT_SYMBOL(pnp_get_resource);
    +
    /* format is: pnp_reserve_irq=irq1[,irq2] .... */
    static int __init pnp_setup_reserve_irq(char *str)
    {
    --


    \
     
     \ /
      Last update: 2008-04-25 20:51    [W:2.152 / U:0.072 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site