cfi_flash: don't hide write/erase errors
authorBaruch Siach <baruch@tkos.co.il>
Thu, 4 Sep 2014 09:23:09 +0000 (12:23 +0300)
committerStefan Roese <sr@denx.de>
Mon, 6 Oct 2014 12:12:12 +0000 (14:12 +0200)
Partially revert commit 0d01f66d235118 (CFI: cfi_flash write fix for AMD
legacy).

flash_full_status_check() used to skip status register parsing when
flash_status_check() returns OK. This is wrong since flash_status_check()
must return OK for other status bits to be valid.

Cc: Ed Swarthout <Ed.Swarthout@freescale.com>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Stefan Roese <sr@denx.de>
drivers/mtd/cfi_flash.c

index c4b5bc1de553d2101fc5aca3f0a3a5d1f616c509..9b3175d87fbdabff14d922ce4c64d620b9aa60f4 100644 (file)
@@ -593,7 +593,7 @@ static int flash_full_status_check (flash_info_t * info, flash_sect_t sector,
        case CFI_CMDSET_INTEL_PROG_REGIONS:
        case CFI_CMDSET_INTEL_EXTENDED:
        case CFI_CMDSET_INTEL_STANDARD:
-               if ((retcode != ERR_OK)
+               if ((retcode == ERR_OK)
                    && !flash_isequal (info, sector, 0, FLASH_STATUS_DONE)) {
                        retcode = ERR_INVAL;
                        printf ("Flash %s error at address %lx\n", prompt,