aboutsummaryrefslogtreecommitdiff
path: root/drivers/pnp/interface.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pnp/interface.c')
-rw-r--r--drivers/pnp/interface.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/drivers/pnp/interface.c b/drivers/pnp/interface.c
index 77d8bf01b48..5d9301de177 100644
--- a/drivers/pnp/interface.c
+++ b/drivers/pnp/interface.c
@@ -321,7 +321,6 @@ pnp_set_current_resources(struct device *dmdev, struct device_attribute *attr,
{
struct pnp_dev *dev = to_pnp_dev(dmdev);
struct pnp_resource *pnp_res;
- struct resource *res;
char *buf = (void *)ubuf;
int retval = 0;
resource_size_t start, end;
@@ -402,24 +401,20 @@ pnp_set_current_resources(struct device *dmdev, struct device_attribute *attr,
buf += 3;
while (isspace(*buf))
++buf;
- pnp_res = pnp_get_pnp_resource(dev,
- IORESOURCE_MEM, nmem);
- if (!pnp_res)
- break;
- pnp_res->index = nmem;
- 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_MEM;
- nmem++;
+ end = start;
+ pnp_res = pnp_add_mem_resource(dev, start, end,
+ 0);
+ if (pnp_res)
+ pnp_res->index = nmem++;
continue;
}
if (!strnicmp(buf, "irq", 3)) {