PNP: make generic pnp_add_io_resource()
Add a pnp_add_io_resource() that can be used by all the PNP
backends. This consolidates a little more pnp_resource_table
knowledge into one place.
Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
diff --git a/drivers/pnp/interface.c b/drivers/pnp/interface.c
index 00c8a97..77d8bf0 100644
--- a/drivers/pnp/interface.c
+++ b/drivers/pnp/interface.c
@@ -324,7 +324,7 @@
struct resource *res;
char *buf = (void *)ubuf;
int retval = 0;
- resource_size_t start;
+ resource_size_t start, end;
if (dev->status & PNP_ATTACHED) {
retval = -EBUSY;
@@ -382,24 +382,20 @@
buf += 2;
while (isspace(*buf))
++buf;
- pnp_res = pnp_get_pnp_resource(dev,
- IORESOURCE_IO, nport);
- if (!pnp_res)
- break;
- pnp_res->index = nport;
- res = &pnp_res->res;
- res->start = simple_strtoul(buf, &buf, 0);
+ start = simple_strtoul(buf, &buf, 0);
while (isspace(*buf))
++buf;
if (*buf == '-') {
buf += 1;
while (isspace(*buf))
++buf;
- res->end = simple_strtoul(buf, &buf, 0);
+ end = simple_strtoul(buf, &buf, 0);
} else
- res->end = res->start;
- res->flags = IORESOURCE_IO;
- nport++;
+ end = start;
+ pnp_res = pnp_add_io_resource(dev, start, end,
+ 0);
+ if (pnp_res)
+ pnp_res->index = nport++;
continue;
}
if (!strnicmp(buf, "mem", 3)) {