]> err.no Git - linux-2.6/blobdiff - drivers/pnp/pnpbios/rsparser.c
Merge git://git.infradead.org/battery-2.6
[linux-2.6] / drivers / pnp / pnpbios / rsparser.c
index 8c83bc16a9be7b6ff0aa5faf11e84a4138ef30d3..5ff9a4c0447ec8052e0de9a433255051826e1298 100644 (file)
@@ -4,7 +4,6 @@
 
 #include <linux/ctype.h>
 #include <linux/pnp.h>
-#include <linux/pnpbios.h>
 #include <linux/string.h>
 #include <linux/slab.h>
 
@@ -67,26 +66,15 @@ static void pnpbios_parse_allocated_ioresource(struct pnp_dev *dev,
 }
 
 static void pnpbios_parse_allocated_memresource(struct pnp_dev *dev,
-                                               int mem, int len)
+                                               int start, int len)
 {
-       struct resource *res;
-       int i;
+       int flags = 0;
+       int end = start + len - 1;
 
-       for (i = 0; i < PNP_MAX_MEM; i++) {
-               res = pnp_get_resource(dev, IORESOURCE_MEM, i);
-               if (!pnp_resource_valid(res))
-                       break;
-       }
+       if (len <= 0)
+               flags |= IORESOURCE_DISABLED;
 
-       if (i < PNP_MAX_MEM) {
-               res->flags = IORESOURCE_MEM;    // Also clears _UNSET flag
-               if (len <= 0) {
-                       res->flags |= IORESOURCE_DISABLED;
-                       return;
-               }
-               res->start = (unsigned long)mem;
-               res->end = (unsigned long)(mem + len - 1);
-       }
+       pnp_add_mem_resource(dev, start, end, flags);
 }
 
 static unsigned char *pnpbios_parse_allocated_resource_data(struct pnp_dev *dev,
@@ -603,7 +591,8 @@ static void pnpbios_encode_irq(struct pnp_dev *dev, unsigned char *p,
        p[1] = map & 0xff;
        p[2] = (map >> 8) & 0xff;
 
-       dev_dbg(&dev->dev, "  encode irq %d\n", res->start);
+       dev_dbg(&dev->dev, "  encode irq %llu\n",
+               (unsigned long long)res->start);
 }
 
 static void pnpbios_encode_dma(struct pnp_dev *dev, unsigned char *p,
@@ -614,7 +603,8 @@ static void pnpbios_encode_dma(struct pnp_dev *dev, unsigned char *p,
        map = 1 << res->start;
        p[1] = map & 0xff;
 
-       dev_dbg(&dev->dev, "  encode dma %d\n", res->start);
+       dev_dbg(&dev->dev, "  encode dma %llu\n",
+               (unsigned long long)res->start);
 }
 
 static void pnpbios_encode_port(struct pnp_dev *dev, unsigned char *p,