Pb1200/DBAu1200: fix bad IDE resource size
authorSergei Shtylyov <sshtylyov@ru.mvista.com>
Wed, 16 Apr 2008 23:14:33 +0000 (01:14 +0200)
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Wed, 16 Apr 2008 23:14:33 +0000 (01:14 +0200)
The header files for the Pb1200/DBAu1200 boards have wrong definition for the
IDE interface's decoded range length -- it should be 512 bytes according to
what the IDE driver does.  In addition, the IDE platform device claims 1 byte
too many for its memory resource -- fix the platform code and the IDE driver
in accordance.

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Cc: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
arch/mips/au1000/common/platform.c
drivers/ide/mips/au1xxx-ide.c
include/asm-mips/mach-db1x00/db1200.h
include/asm-mips/mach-pb1x00/pb1200.h

index 841904cdef4da76aa0759cdebca434f00b77199d..39d68126529770701c6668017edc19611ab59dbb 100644 (file)
@@ -189,7 +189,7 @@ static struct resource au1200_lcd_resources[] = {
 static struct resource au1200_ide0_resources[] = {
        [0] = {
                .start          = AU1XXX_ATA_PHYS_ADDR,
 static struct resource au1200_ide0_resources[] = {
        [0] = {
                .start          = AU1XXX_ATA_PHYS_ADDR,
-               .end            = AU1XXX_ATA_PHYS_ADDR + AU1XXX_ATA_PHYS_LEN,
+               .end            = AU1XXX_ATA_PHYS_ADDR + AU1XXX_ATA_PHYS_LEN - 1,
                .flags          = IORESOURCE_MEM,
        },
        [1] = {
                .flags          = IORESOURCE_MEM,
        },
        [1] = {
index f84411b6609a9d5299708972270ac142598237ca..85c016bdfd38b4948770c2a60ae7a5bc42b6ca38 100644 (file)
@@ -586,13 +586,14 @@ static int au_ide_probe(struct device *dev)
                goto out;
        }
 
                goto out;
        }
 
-       if (!request_mem_region (res->start, res->end-res->start, pdev->name)) {
+       if (!request_mem_region(res->start, res->end - res->start + 1,
+                               pdev->name)) {
                pr_debug("%s: request_mem_region failed\n", DRV_NAME);
                ret =  -EBUSY;
                goto out;
        }
 
                pr_debug("%s: request_mem_region failed\n", DRV_NAME);
                ret =  -EBUSY;
                goto out;
        }
 
-       ahwif->regbase = (u32)ioremap(res->start, res->end-res->start);
+       ahwif->regbase = (u32)ioremap(res->start, res->end - res->start + 1);
        if (ahwif->regbase == 0) {
                ret = -ENOMEM;
                goto out;
        if (ahwif->regbase == 0) {
                ret = -ENOMEM;
                goto out;
@@ -677,7 +678,7 @@ static int au_ide_remove(struct device *dev)
        iounmap((void *)ahwif->regbase);
 
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        iounmap((void *)ahwif->regbase);
 
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       release_mem_region(res->start, res->end - res->start);
+       release_mem_region(res->start, res->end - res->start + 1);
 
        return 0;
 }
 
        return 0;
 }
index a6bdac61ab49cabf82191b336a583c71e91d3452..d2e28e64932ed8141d8f4b29df85f8739fb963a2 100644 (file)
@@ -173,8 +173,8 @@ static BCSR * const bcsr = (BCSR *)BCSR_KSEG1_ADDR;
 #define AU1XXX_SMC91111_IRQ                    DB1200_ETH_INT
 
 #define AU1XXX_ATA_PHYS_ADDR           (0x18800000)
 #define AU1XXX_SMC91111_IRQ                    DB1200_ETH_INT
 
 #define AU1XXX_ATA_PHYS_ADDR           (0x18800000)
-#define AU1XXX_ATA_PHYS_LEN                    (0x100)
-#define AU1XXX_ATA_REG_OFFSET  (5)
+#define AU1XXX_ATA_REG_OFFSET          (5)
+#define AU1XXX_ATA_PHYS_LEN            (16 << AU1XXX_ATA_REG_OFFSET)
 #define AU1XXX_ATA_INT                 DB1200_IDE_INT
 #define AU1XXX_ATA_DDMA_REQ            DSCR_CMD0_DMA_REQ1;
 #define AU1XXX_ATA_RQSIZE              128
 #define AU1XXX_ATA_INT                 DB1200_IDE_INT
 #define AU1XXX_ATA_DDMA_REQ            DSCR_CMD0_DMA_REQ1;
 #define AU1XXX_ATA_RQSIZE              128
index 72213e3d02c76337c856c943bf32f57b0d244a33..edaa489b58f179213bc93c428c75ce6d762f0ad2 100644 (file)
@@ -186,8 +186,8 @@ static BCSR * const bcsr = (BCSR *)BCSR_KSEG1_ADDR;
 #define AU1XXX_SMC91111_IRQ                    PB1200_ETH_INT
 
 #define AU1XXX_ATA_PHYS_ADDR           (0x0C800000)
 #define AU1XXX_SMC91111_IRQ                    PB1200_ETH_INT
 
 #define AU1XXX_ATA_PHYS_ADDR           (0x0C800000)
-#define AU1XXX_ATA_PHYS_LEN                    (0x100)
-#define AU1XXX_ATA_REG_OFFSET  (5)
+#define AU1XXX_ATA_REG_OFFSET          (5)
+#define AU1XXX_ATA_PHYS_LEN            (16 << AU1XXX_ATA_REG_OFFSET)
 #define AU1XXX_ATA_INT                 PB1200_IDE_INT
 #define AU1XXX_ATA_DDMA_REQ            DSCR_CMD0_DMA_REQ1;
 #define AU1XXX_ATA_RQSIZE              128
 #define AU1XXX_ATA_INT                 PB1200_IDE_INT
 #define AU1XXX_ATA_DDMA_REQ            DSCR_CMD0_DMA_REQ1;
 #define AU1XXX_ATA_RQSIZE              128