浏览代码

onenand_spl_simple: Call onenand_spl_get_geometry() only once

Do not call onenand_spl_get_geometry() for each block read.

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>
Ladislav Michl 8 年之前
父节点
当前提交
0da008ef8d
共有 1 个文件被更改,包括 5 次插入2 次删除
  1. 5 2
      drivers/mtd/onenand/onenand_spl.c

+ 5 - 2
drivers/mtd/onenand/onenand_spl.c

@@ -110,9 +110,12 @@ static u8 scratch_buf[PAGE_4K];
  */
  */
 int onenand_spl_read_block(int block, int offset, int len, void *dst)
 int onenand_spl_read_block(int block, int offset, int len, void *dst)
 {
 {
-	int page, read, psize;
+	int page, read;
+	static int psize;
+
+	if (!psize)
+		psize = onenand_spl_get_geometry();
 
 
-	psize = onenand_spl_get_geometry();
 	/* Calculate the page number */
 	/* Calculate the page number */
 	page = offset / psize;
 	page = offset / psize;
 	/* Offset to the start of a flash page */
 	/* Offset to the start of a flash page */