diff options
author | Rohit Hassan Sathyanarayan <rohit.hs@samsung.com> | 2010-07-23 12:29:25 +0530 |
---|---|---|
committer | David Woodhouse <David.Woodhouse@intel.com> | 2010-08-02 09:10:09 +0100 |
commit | 42b0aab1cc30b2fa7e0a99b832bd1b5c9b59757d (patch) | |
tree | 1040828100cc2075c8edf8a79ed13e0a7d0d13d3 /drivers/mtd/onenand | |
parent | 02ed70bb7b2644936959aee617296022dedb109e (diff) | |
download | op-kernel-dev-42b0aab1cc30b2fa7e0a99b832bd1b5c9b59757d.zip op-kernel-dev-42b0aab1cc30b2fa7e0a99b832bd1b5c9b59757d.tar.gz |
mtd: onenand:fix for page addr calculation based on device type
Sending the patch for page address calculation based on device type. This resolves the
OneNAND DDP device read problem as pointed by Enric.
http://lists.infradead.org/pipermail/linux-mtd/2010-July/030920.html
Signed-off-by: Rohit HS <rohit.hs@samsung.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Diffstat (limited to 'drivers/mtd/onenand')
-rw-r--r-- | drivers/mtd/onenand/onenand_base.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/mtd/onenand/onenand_base.c b/drivers/mtd/onenand/onenand_base.c index 26caf25..f749935 100644 --- a/drivers/mtd/onenand/onenand_base.c +++ b/drivers/mtd/onenand/onenand_base.c @@ -377,8 +377,11 @@ static int onenand_command(struct mtd_info *mtd, int cmd, loff_t addr, size_t le default: block = onenand_block(this, addr); - page = (int) (addr - onenand_addr(this, block)) >> this->page_shift; - + if (FLEXONENAND(this)) + page = (int) (addr - onenand_addr(this, block))>>\ + this->page_shift; + else + page = (int) (addr >> this->page_shift); if (ONENAND_IS_2PLANE(this)) { /* Make the even block number */ block &= ~1; |