From 5f9958766e20a3f56f7d1e9845074e3c050d8f18 Mon Sep 17 00:00:00 2001 From: Vimal Singh Date: Thu, 7 Jan 2010 12:16:26 +0530 Subject: [PATCH] --- yaml --- r: 195883 b: refs/heads/master c: c3341d0ceb4de1680572024f50233403c6a8b10d h: refs/heads/master i: 195881: 4a3e81507dd67176ffa01433ca5cac889b750808 195879: 5c1219abbd46d89756c4435ee5573f299a232ae4 v: v3 --- [refs] | 2 +- trunk/drivers/mtd/nand/omap2.c | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 28611e1fa4ee..e037acb1c2db 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f35b6eda5184e46bf2393d8970b4b9498daf7bcf +refs/heads/master: c3341d0ceb4de1680572024f50233403c6a8b10d diff --git a/trunk/drivers/mtd/nand/omap2.c b/trunk/drivers/mtd/nand/omap2.c index 16120e2dd4a3..7df303aed8a4 100644 --- a/trunk/drivers/mtd/nand/omap2.c +++ b/trunk/drivers/mtd/nand/omap2.c @@ -295,11 +295,14 @@ static void omap_read_buf_pref(struct mtd_info *mtd, u_char *buf, int len) u32 *p = (u32 *)buf; /* take care of subpage reads */ - for (; len % 4 != 0; ) { - *buf++ = __raw_readb(info->nand.IO_ADDR_R); - len--; + if (len % 4) { + if (info->nand.options & NAND_BUSWIDTH_16) + omap_read_buf16(mtd, buf, len % 4); + else + omap_read_buf8(mtd, buf, len % 4); + p = (u32 *) (buf + len % 4); + len -= len % 4; } - p = (u32 *) buf; /* configure and start prefetch transfer */ ret = gpmc_prefetch_enable(info->gpmc_cs, 0x0, len, 0x0);