[MTD] [NAND] tmio_nand: fix base address programming
authorDmitry Baryshkov <dbaryshkov@gmail.com>
Thu, 4 Sep 2008 09:28:33 +0000 (13:28 +0400)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Fri, 5 Sep 2008 14:34:35 +0000 (15:34 +0100)
Fix offset of second word used for programming base address of memory
window. Also program tmio with offset of the FCR, not with physical
memory location.

Signed-off-by: Dmitry Baryshkov <dbaryshkov@gmail.com>
Cc: Ian Molton <spyro@f2s.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/nand/tmio_nand.c

index cbab654b03c8464a48b4b501f753e727b579c27a..edb1e322113d20905e9d02f7fac26489748d6480 100644 (file)
@@ -109,7 +109,7 @@ struct tmio_nand {
 
        void __iomem *ccr;
        void __iomem *fcr;
-       unsigned long fcr_phys;
+       unsigned long fcr_base;
 
        unsigned int irq;
 
@@ -316,8 +316,8 @@ static int tmio_hw_init(struct platform_device *dev, struct tmio_nand *tmio)
        tmio_iowrite8(0x81, tmio->ccr + CCR_ICC);
 
        /* (10h)BaseAddress    0x1000 spba.spba2 */
-       tmio_iowrite16(tmio->fcr_phys, tmio->ccr + CCR_BASE);
-       tmio_iowrite16(tmio->fcr_phys >> 16, tmio->ccr + CCR_BASE + 16);
+       tmio_iowrite16(tmio->fcr_base, tmio->ccr + CCR_BASE);
+       tmio_iowrite16(tmio->fcr_base >> 16, tmio->ccr + CCR_BASE + 2);
 
        /* (04h)Command Register I/O spcmd */
        tmio_iowrite8(0x02, tmio->ccr + CCR_COMMAND);
@@ -395,7 +395,7 @@ static int tmio_probe(struct platform_device *dev)
                goto err_iomap_ccr;
        }
 
-       tmio->fcr_phys = (unsigned long)fcr->start;
+       tmio->fcr_base = fcr->start & 0xfffff;
        tmio->fcr = ioremap(fcr->start, fcr->end - fcr->start + 1);
        if (!tmio->fcr) {
                retval = -EIO;