Skip to content

Commit

Permalink
PNP: add struct pnp_resource
Browse files Browse the repository at this point in the history
This patch adds a "struct pnp_resource".  This currently
contains only a struct resource, but we will soon need
additional PNP-specific information.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
  • Loading branch information
Bjorn Helgaas authored and Len Brown committed Apr 29, 2008
1 parent 06cb58a commit 784f01d
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 16 deletions.
12 changes: 8 additions & 4 deletions drivers/pnp/base.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,13 @@ void pnp_init_resource(struct resource *res);
#define PNP_MAX_IRQ 2
#define PNP_MAX_DMA 2

struct pnp_resource {
struct resource res;
};

struct pnp_resource_table {
struct resource port_resource[PNP_MAX_PORT];
struct resource mem_resource[PNP_MAX_MEM];
struct resource dma_resource[PNP_MAX_DMA];
struct resource irq_resource[PNP_MAX_IRQ];
struct pnp_resource port[PNP_MAX_PORT];
struct pnp_resource mem[PNP_MAX_MEM];
struct pnp_resource dma[PNP_MAX_DMA];
struct pnp_resource irq[PNP_MAX_IRQ];
};
16 changes: 8 additions & 8 deletions drivers/pnp/manager.c
Original file line number Diff line number Diff line change
Expand Up @@ -247,22 +247,22 @@ void pnp_init_resources(struct pnp_dev *dev)
int idx;

for (idx = 0; idx < PNP_MAX_IRQ; idx++) {
res = &dev->res->irq_resource[idx];
res = &dev->res->irq[idx].res;
res->flags = IORESOURCE_IRQ;
pnp_init_resource(res);
}
for (idx = 0; idx < PNP_MAX_DMA; idx++) {
res = &dev->res->dma_resource[idx];
res = &dev->res->dma[idx].res;
res->flags = IORESOURCE_DMA;
pnp_init_resource(res);
}
for (idx = 0; idx < PNP_MAX_PORT; idx++) {
res = &dev->res->port_resource[idx];
res = &dev->res->port[idx].res;
res->flags = IORESOURCE_IO;
pnp_init_resource(res);
}
for (idx = 0; idx < PNP_MAX_MEM; idx++) {
res = &dev->res->mem_resource[idx];
res = &dev->res->mem[idx].res;
res->flags = IORESOURCE_MEM;
pnp_init_resource(res);
}
Expand All @@ -278,28 +278,28 @@ static void pnp_clean_resource_table(struct pnp_dev *dev)
int idx;

for (idx = 0; idx < PNP_MAX_IRQ; idx++) {
res = &dev->res->irq_resource[idx];
res = &dev->res->irq[idx].res;
if (res->flags & IORESOURCE_AUTO) {
res->flags = IORESOURCE_IRQ;
pnp_init_resource(res);
}
}
for (idx = 0; idx < PNP_MAX_DMA; idx++) {
res = &dev->res->dma_resource[idx];
res = &dev->res->dma[idx].res;
if (res->flags & IORESOURCE_AUTO) {
res->flags = IORESOURCE_DMA;
pnp_init_resource(res);
}
}
for (idx = 0; idx < PNP_MAX_PORT; idx++) {
res = &dev->res->port_resource[idx];
res = &dev->res->port[idx].res;
if (res->flags & IORESOURCE_AUTO) {
res->flags = IORESOURCE_IO;
pnp_init_resource(res);
}
}
for (idx = 0; idx < PNP_MAX_MEM; idx++) {
res = &dev->res->mem_resource[idx];
res = &dev->res->mem[idx].res;
if (res->flags & IORESOURCE_AUTO) {
res->flags = IORESOURCE_MEM;
pnp_init_resource(res);
Expand Down
8 changes: 4 additions & 4 deletions drivers/pnp/resource.c
Original file line number Diff line number Diff line change
Expand Up @@ -508,19 +508,19 @@ struct resource *pnp_get_resource(struct pnp_dev *dev,
case IORESOURCE_IO:
if (num >= PNP_MAX_PORT)
return NULL;
return &res->port_resource[num];
return &res->port[num].res;
case IORESOURCE_MEM:
if (num >= PNP_MAX_MEM)
return NULL;
return &res->mem_resource[num];
return &res->mem[num].res;
case IORESOURCE_IRQ:
if (num >= PNP_MAX_IRQ)
return NULL;
return &res->irq_resource[num];
return &res->irq[num].res;
case IORESOURCE_DMA:
if (num >= PNP_MAX_DMA)
return NULL;
return &res->dma_resource[num];
return &res->dma[num].res;
}
return NULL;
}
Expand Down

0 comments on commit 784f01d

Please sign in to comment.