From mboxrd@z Thu Jan 1 00:00:00 1970 From: htbegin Date: Sun, 19 Feb 2012 19:48:37 +0800 Subject: [U-Boot] [PATCH] cfi: fix the incomplete erased status check in buffer write Message-ID: <1329652117-14084-1-git-send-email-hotforest@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Without the fix, flash_write_cfibuffer will return timeout error instead of not-erased error when all bytes in the first word of a sector are 0xFF and other words are not. Signed-off-by: htbegin Cc: Stefan Roese --- drivers/mtd/cfi_flash.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/mtd/cfi_flash.c b/drivers/mtd/cfi_flash.c index 722c3fc..35294bc 100644 --- a/drivers/mtd/cfi_flash.c +++ b/drivers/mtd/cfi_flash.c @@ -873,7 +873,7 @@ static int flash_write_cfibuffer (flash_info_t * info, ulong dest, uchar * cp, void *src = cp; void *dst = (void *)dest; void *dst2 = dst; - int flag = 0; + int flag = 1; uint offset = 0; unsigned int shift; uchar write_cmd; @@ -898,7 +898,7 @@ static int flash_write_cfibuffer (flash_info_t * info, ulong dest, uchar * cp, cnt = len >> shift; - while ((cnt-- > 0) && (flag == 0)) { + while ((cnt-- > 0) && (flag == 1)) { switch (info->portwidth) { case FLASH_CFI_8BIT: flag = ((flash_read8(dst2) & flash_read8(src)) == -- 1.7.4.1