|
@@ -248,8 +248,9 @@ static ssize_t pnp_show_current_resources(struct device *dmdev,
|
|
char *buf)
|
|
char *buf)
|
|
{
|
|
{
|
|
struct pnp_dev *dev = to_pnp_dev(dmdev);
|
|
struct pnp_dev *dev = to_pnp_dev(dmdev);
|
|
|
|
+ struct pnp_resource *pnp_res;
|
|
struct resource *res;
|
|
struct resource *res;
|
|
- int i, ret;
|
|
|
|
|
|
+ int ret;
|
|
pnp_info_buffer_t *buffer;
|
|
pnp_info_buffer_t *buffer;
|
|
|
|
|
|
if (!dev)
|
|
if (!dev)
|
|
@@ -262,46 +263,33 @@ static ssize_t pnp_show_current_resources(struct device *dmdev,
|
|
buffer->buffer = buf;
|
|
buffer->buffer = buf;
|
|
buffer->curr = buffer->buffer;
|
|
buffer->curr = buffer->buffer;
|
|
|
|
|
|
- pnp_printf(buffer, "state = ");
|
|
|
|
- if (dev->active)
|
|
|
|
- pnp_printf(buffer, "active\n");
|
|
|
|
- else
|
|
|
|
- pnp_printf(buffer, "disabled\n");
|
|
|
|
|
|
+ pnp_printf(buffer, "state = %s\n", dev->active ? "active" : "disabled");
|
|
|
|
|
|
- for (i = 0; (res = pnp_get_resource(dev, IORESOURCE_IO, i)); i++) {
|
|
|
|
- pnp_printf(buffer, "io");
|
|
|
|
- if (res->flags & IORESOURCE_DISABLED)
|
|
|
|
- pnp_printf(buffer, " disabled\n");
|
|
|
|
- else
|
|
|
|
- pnp_printf(buffer, " 0x%llx-0x%llx\n",
|
|
|
|
- (unsigned long long) res->start,
|
|
|
|
- (unsigned long long) res->end);
|
|
|
|
- }
|
|
|
|
- for (i = 0; (res = pnp_get_resource(dev, IORESOURCE_MEM, i)); i++) {
|
|
|
|
- pnp_printf(buffer, "mem");
|
|
|
|
- if (res->flags & IORESOURCE_DISABLED)
|
|
|
|
|
|
+ list_for_each_entry(pnp_res, &dev->resources, list) {
|
|
|
|
+ res = &pnp_res->res;
|
|
|
|
+
|
|
|
|
+ pnp_printf(buffer, pnp_resource_type_name(res));
|
|
|
|
+
|
|
|
|
+ if (res->flags & IORESOURCE_DISABLED) {
|
|
pnp_printf(buffer, " disabled\n");
|
|
pnp_printf(buffer, " disabled\n");
|
|
- else
|
|
|
|
- pnp_printf(buffer, " 0x%llx-0x%llx\n",
|
|
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ switch (pnp_resource_type(res)) {
|
|
|
|
+ case IORESOURCE_IO:
|
|
|
|
+ case IORESOURCE_MEM:
|
|
|
|
+ pnp_printf(buffer, " %#llx-%#llx\n",
|
|
(unsigned long long) res->start,
|
|
(unsigned long long) res->start,
|
|
(unsigned long long) res->end);
|
|
(unsigned long long) res->end);
|
|
- }
|
|
|
|
- for (i = 0; (res = pnp_get_resource(dev, IORESOURCE_IRQ, i)); i++) {
|
|
|
|
- pnp_printf(buffer, "irq");
|
|
|
|
- if (res->flags & IORESOURCE_DISABLED)
|
|
|
|
- pnp_printf(buffer, " disabled\n");
|
|
|
|
- else
|
|
|
|
- pnp_printf(buffer, " %lld\n",
|
|
|
|
- (unsigned long long) res->start);
|
|
|
|
- }
|
|
|
|
- for (i = 0; (res = pnp_get_resource(dev, IORESOURCE_DMA, i)); i++) {
|
|
|
|
- pnp_printf(buffer, "dma");
|
|
|
|
- if (res->flags & IORESOURCE_DISABLED)
|
|
|
|
- pnp_printf(buffer, " disabled\n");
|
|
|
|
- else
|
|
|
|
|
|
+ break;
|
|
|
|
+ case IORESOURCE_IRQ:
|
|
|
|
+ case IORESOURCE_DMA:
|
|
pnp_printf(buffer, " %lld\n",
|
|
pnp_printf(buffer, " %lld\n",
|
|
(unsigned long long) res->start);
|
|
(unsigned long long) res->start);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+
|
|
ret = (buffer->curr - buf);
|
|
ret = (buffer->curr - buf);
|
|
kfree(buffer);
|
|
kfree(buffer);
|
|
return ret;
|
|
return ret;
|