Skip to content

Commit

Permalink
mtd: OneNAND: Fix page offset handling at 2KiB pagesize
Browse files Browse the repository at this point in the history
When use the 2KiB pagesize, it should be set the correct page offset.

Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
  • Loading branch information
Kyungmin Park authored and David Woodhouse committed Dec 3, 2010
1 parent daf05ec commit 08b3af3
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions drivers/mtd/onenand/samsung.c
Original file line number Diff line number Diff line change
Expand Up @@ -651,7 +651,7 @@ static int s5pc110_read_bufferram(struct mtd_info *mtd, int area,
void __iomem *p;
void *buf = (void *) buffer;
dma_addr_t dma_src, dma_dst;
int err, page_dma = 0;
int err, ofs, page_dma = 0;
struct device *dev = &onenand->pdev->dev;

p = this->base + area;
Expand All @@ -677,10 +677,13 @@ static int s5pc110_read_bufferram(struct mtd_info *mtd, int area,
if (!page)
goto normal;

/* Page offset */
ofs = ((size_t) buf & ~PAGE_MASK);
page_dma = 1;

/* DMA routine */
dma_src = onenand->phys_base + (p - this->base);
dma_dst = dma_map_page(dev, page, 0, count, DMA_FROM_DEVICE);
dma_dst = dma_map_page(dev, page, ofs, count, DMA_FROM_DEVICE);
} else {
/* DMA routine */
dma_src = onenand->phys_base + (p - this->base);
Expand Down

0 comments on commit 08b3af3

Please sign in to comment.