[U-Boot] [PATCH 4/4] OneNAND: Use generic_onenand_read_page in IPL

Marek Vasut marek.vasut at gmail.com
Sat Oct 2 19:33:59 CEST 2010


There apparantly is no reason for having "onenand_read_page" abstracted.
Besides, it's static data which causes trouble.

Signed-off-by: Marek Vasut <marek.vasut at gmail.com>
---
 onenand_ipl/onenand_read.c |    9 +++------
 1 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/onenand_ipl/onenand_read.c b/onenand_ipl/onenand_read.c
index 8d0df81..008d73a 100644
--- a/onenand_ipl/onenand_read.c
+++ b/onenand_ipl/onenand_read.c
@@ -37,8 +37,6 @@
 extern void *memcpy32(void *dest, void *src, int size);
 #endif
 
-int (*onenand_read_page)(ulong block, ulong page, u_char *buf, int pagesize);
-
 /* read a page with ECC */
 static int generic_onenand_read_page(ulong block, ulong page,
 				u_char * buf, int pagesize)
@@ -122,8 +120,6 @@ int onenand_read_block(unsigned char *buf)
 	int pagesize, erasesize, erase_shift;
 	int page_is_4KiB = 0;
 
-	onenand_read_page = generic_onenand_read_page;
-
 	onenand_generic_init(&page_is_4KiB, &page);
 
 	if (page_is_4KiB) {
@@ -139,10 +135,11 @@ int onenand_read_block(unsigned char *buf)
 
 	/* NOTE: you must read page from page 1 of block 0 */
 	/* read the block page by page */
+
 	for (block = 0; block < nblocks; block++) {
 		for (; page < ONENAND_PAGES_PER_BLOCK; page++) {
-			if (onenand_read_page(block, page, buf + offset,
-						pagesize)) {
+			if (generic_onenand_read_page(block, page,
+					buf + offset, pagesize)) {
 				/* This block is bad. Skip it
 				 * and read next block */
 				offset -= page * pagesize;
-- 
1.7.1



More information about the U-Boot mailing list