public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: "Benoît Thébaudeau" <benoit.thebaudeau@advansee.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 03/13] spl mxc nand: Merge duplicated code
Date: Mon, 13 Aug 2012 22:48:56 +0200 (CEST)	[thread overview]
Message-ID: <1413177045.2374986.1344890936074.JavaMail.root@advansee.com> (raw)
In-Reply-To: <1580773374.2374979.1344890876408.JavaMail.root@advansee.com>

Merge duplicated code into functions, which is better for SPL size too.

Signed-off-by: Beno?t Th?baudeau <benoit.thebaudeau@advansee.com>
Cc: Scott Wood <scottwood@freescale.com>
Cc: Stefano Babic <sbabic@denx.de>
---
 .../nand_spl/nand_boot_fsl_nfc.c                   |   50 +++++++++-----------
 1 file changed, 23 insertions(+), 27 deletions(-)

diff --git u-boot-4d3c95f.orig/nand_spl/nand_boot_fsl_nfc.c u-boot-4d3c95f/nand_spl/nand_boot_fsl_nfc.c
index b90f93e..b98fe41 100644
--- u-boot-4d3c95f.orig/nand_spl/nand_boot_fsl_nfc.c
+++ u-boot-4d3c95f/nand_spl/nand_boot_fsl_nfc.c
@@ -83,37 +83,35 @@ static void nfc_nand_command(unsigned short command)
 	nfc_wait_ready();
 }
 
+static void nfc_nand_address(unsigned short address)
+{
+	writew(address, &nfc->flash_addr);
+	writew(NFC_ADDR, &nfc->config2);
+	nfc_wait_ready();
+}
+
 static void nfc_nand_page_address(unsigned int page_address)
 {
 	unsigned int page_count;
 
-	writew(0x00, &nfc->flash_addr);
-	writew(NFC_ADDR, &nfc->config2);
-	nfc_wait_ready();
+	nfc_nand_address(0x00);
 
 	/* code only for large page flash */
-	if (CONFIG_SYS_NAND_PAGE_SIZE > 512) {
-		writew(0x00, &nfc->flash_addr);
-		writew(NFC_ADDR, &nfc->config2);
-		nfc_wait_ready();
-	}
+	if (CONFIG_SYS_NAND_PAGE_SIZE > 512)
+		nfc_nand_address(0x00);
 
 	page_count = CONFIG_SYS_NAND_SIZE / CONFIG_SYS_NAND_PAGE_SIZE;
 
 	if (page_address <= page_count) {
 		page_count--; /* transform 0x01000000 to 0x00ffffff */
 		do {
-			writew(page_address & 0xff, &nfc->flash_addr);
-			writew(NFC_ADDR, &nfc->config2);
-			nfc_wait_ready();
+			nfc_nand_address(page_address & 0xff);
 			page_address = page_address >> 8;
 			page_count = page_count >> 8;
 		} while (page_count);
 	}
 
-	writew(0x00, &nfc->flash_addr);
-	writew(NFC_ADDR, &nfc->config2);
-	nfc_wait_ready();
+	nfc_nand_address(0x00);
 }
 
 static void nfc_nand_data_output(void)
@@ -149,12 +147,8 @@ static int nfc_nand_check_ecc(void)
 	return readw(&nfc->ecc_status_result);
 }
 
-static int nfc_read_page(unsigned int page_address, unsigned char *buf)
+static void nfc_nand_read_page(unsigned int page_address)
 {
-	int i;
-	u32 *src;
-	u32 *dst;
-
 	writew(0, &nfc->buf_addr); /* read in first 0 buffer */
 	nfc_nand_command(NAND_CMD_READ0);
 	nfc_nand_page_address(page_address);
@@ -163,6 +157,15 @@ static int nfc_read_page(unsigned int page_address, unsigned char *buf)
 		nfc_nand_command(NAND_CMD_READSTART);
 
 	nfc_nand_data_output(); /* fill the main buffer 0 */
+}
+
+static int nfc_read_page(unsigned int page_address, unsigned char *buf)
+{
+	int i;
+	u32 *src;
+	u32 *dst;
+
+	nfc_nand_read_page(page_address);
 
 	if (nfc_nand_check_ecc())
 		return -1;
@@ -188,14 +191,7 @@ static int is_badblock(int pagenumber)
 
 	/* Check the first two pages for bad block markers */
 	for (page = pagenumber; page < pagenumber + 2; page++) {
-		writew(0, &nfc->buf_addr); /* read in first 0 buffer */
-		nfc_nand_command(NAND_CMD_READ0);
-		nfc_nand_page_address(page);
-
-		if (CONFIG_SYS_NAND_PAGE_SIZE > 512)
-			nfc_nand_command(NAND_CMD_READSTART);
-
-		nfc_nand_data_output(); /* fill the main buffer 0 */
+		nfc_nand_read_page(page);
 
 		src = (u32 *)&nfc->spare_area[0][0];
 

  parent reply	other threads:[~2012-08-13 20:48 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-13 20:47 [U-Boot] [PATCH 00/13] mxc nand: Add support for i.MX5 Benoît Thébaudeau
2012-08-13 20:48 ` [U-Boot] [PATCH 01/13] mxc nand: Merge mtd and spl register definitions Benoît Thébaudeau
2012-08-14  8:37   ` Stefano Babic
2012-08-14 10:15     ` Benoît Thébaudeau
2012-08-14 10:46       ` Stefano Babic
2012-08-14 11:13         ` Benoît Thébaudeau
2012-08-14 14:02           ` Stefano Babic
2012-08-14 14:29             ` Benoît Thébaudeau
2012-08-15 18:11               ` Benoît Thébaudeau
2012-08-16  7:27                 ` Stefano Babic
2012-08-14 16:01     ` Scott Wood
2012-08-13 20:48 ` [U-Boot] [PATCH 02/13] mxc nand: cosmectic: Light cleanup Benoît Thébaudeau
2012-08-14  8:41   ` Stefano Babic
2012-08-13 20:48 ` Benoît Thébaudeau [this message]
2012-08-14  9:25   ` [U-Boot] [PATCH 03/13] spl mxc nand: Merge duplicated code Stefano Babic
2012-08-13 20:49 ` [U-Boot] [PATCH 04/13] spl mxc nand: Remove " Benoît Thébaudeau
2012-08-13 20:49 ` [U-Boot] [PATCH 05/13] spl mxc nand: Set symmetric mode Benoît Thébaudeau
2012-08-13 20:49 ` [U-Boot] [PATCH 06/13] mxc nand: Access all ecc_status_result fields Benoît Thébaudeau
2012-09-18  0:39   ` Scott Wood
2012-09-18  0:50     ` Scott Wood
2012-08-13 20:49 ` [U-Boot] [PATCH 07/13] spl mxc nand: Fix broken boot for correctable ECC errors Benoît Thébaudeau
2012-08-13 20:50 ` [U-Boot] [PATCH 08/13] mtd mxc nand: Use _mxc_nand_enable_hwecc() Benoît Thébaudeau
2012-08-14  8:50   ` Stefano Babic
2012-08-14 10:04     ` Benoît Thébaudeau
2012-08-13 20:50 ` [U-Boot] [PATCH 09/13] mtd mxc nand: Fix ECC state after read_page_raw_syndrome() Benoît Thébaudeau
2012-08-13 20:50 ` [U-Boot] [PATCH 10/13] mtd mxc nand: Merge init functions Benoît Thébaudeau
2012-08-13 20:50 ` [U-Boot] [PATCH 11/13] mxc nand: Let driver detect IP revision Benoît Thébaudeau
2012-08-14  9:28   ` Stefano Babic
2012-08-13 20:50 ` [U-Boot] [PATCH 12/13] mxc nand: Homogenize IP revisions with Linux Benoît Thébaudeau
2012-08-13 20:51 ` [U-Boot] [PATCH 13/13] mxc nand: Add support for i.MX5 Benoît Thébaudeau
2012-08-13 21:04   ` Troy Kisky
2012-08-13 21:06     ` Troy Kisky
2012-08-21 21:04   ` [U-Boot] [PATCH v2 " Benoît Thébaudeau
2012-08-21 21:21     ` Scott Wood
2012-09-18  0:36     ` Scott Wood
2012-09-18 18:11       ` Tom Rini
2012-11-15 22:22         ` Scott Wood
2012-11-16 20:15           ` Benoît Thébaudeau
2012-11-16 20:18             ` Scott Wood
2012-11-16 20:19               ` Scott Wood
2012-11-16 20:28             ` Benoît Thébaudeau
2012-11-17  0:01               ` Scott Wood
2012-11-17  1:43                 ` Benoît Thébaudeau
2012-11-20 23:03                   ` Scott Wood
2012-11-20 23:31                     ` Benoît Thébaudeau
2012-11-17 18:37             ` Fabio Estevam
2012-11-20 20:33               ` Matt Sealey
2012-09-18  1:01     ` Scott Wood
2012-09-18 10:18       ` Benoît Thébaudeau
2012-09-18  1:19 ` [U-Boot] [PATCH 00/13] " Scott Wood
2013-01-07 13:02 ` Marek Vasut
2013-01-07 13:37   ` Benoît Thébaudeau
2013-01-07 13:47     ` Marek Vasut
2013-01-08  0:49       ` Scott Wood
2013-01-08  6:59         ` Marek Vasut
2013-01-07 14:36     ` Fabio Estevam
2013-01-07 15:08       ` Marek Vasut
2013-01-07 15:30         ` Benoît Thébaudeau
2013-01-07 15:33           ` Marek Vasut
2013-01-07 16:42           ` Marek Vasut
2013-01-07 16:55             ` Benoît Thébaudeau
2013-01-08  7:15               ` Marek Vasut

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1413177045.2374986.1344890936074.JavaMail.root@advansee.com \
    --to=benoit.thebaudeau@advansee.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox