]> git.hungrycats.org Git - linux/commitdiff
[ISAPNP] MEM Config Fix
authorAdam Belay <ambx1@neo.rr.com>
Sat, 20 Mar 2004 13:49:10 +0000 (13:49 +0000)
committerAdam Belay <ambx1@neo.rr.com>
Sat, 20 Mar 2004 13:49:10 +0000 (13:49 +0000)
This patch fixes a bug in the resource configuration function.  If
there are more than one memory ranges, the isapnp driver will write
into the incorrect configuration register.

drivers/pnp/isapnp/core.c

index 56b6808a0ab6695eb5b075d53e7ed76401c397d2..b864b06882eb14632bdeae977a7b346c2e447a03 100644 (file)
@@ -1048,7 +1048,7 @@ static int isapnp_set_resources(struct pnp_dev *dev, struct pnp_resource_table *
        for (tmp = 0; tmp < PNP_MAX_DMA && (res->dma_resource[tmp].flags & (IORESOURCE_DMA | IORESOURCE_UNSET)) == IORESOURCE_DMA; tmp++)
                isapnp_write_byte(ISAPNP_CFG_DMA+tmp, res->dma_resource[tmp].start);
        for (tmp = 0; tmp < PNP_MAX_MEM && (res->mem_resource[tmp].flags & (IORESOURCE_MEM | IORESOURCE_UNSET)) == IORESOURCE_MEM; tmp++)
-               isapnp_write_word(ISAPNP_CFG_MEM+(tmp<<2), (res->mem_resource[tmp].start >> 8) & 0xffff);
+               isapnp_write_word(ISAPNP_CFG_MEM+(tmp<<3), (res->mem_resource[tmp].start >> 8) & 0xffff);
        /* FIXME: We aren't handling 32bit mems properly here */
        isapnp_activate(dev->number);
        isapnp_cfg_end();