Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 076c7f4c authored by Dmitry Eremin-Solenikov's avatar Dmitry Eremin-Solenikov Committed by David Woodhouse
Browse files

[MTD] [NAND] tmio_nand: fix base address programming



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: default avatarDmitry Baryshkov <dbaryshkov@gmail.com>
Cc: Ian Molton <spyro@f2s.com>
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent b380b0d4
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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;