From cfacb0d6369c179118326eb1315919a11670fe9f Mon Sep 17 00:00:00 2001 From: charles Date: Thu, 13 Nov 2008 01:50:16 +0000 Subject: [PATCH] Extra page status checking to combat power loss causing only one bit to change --- direct/yaffs_norif1.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/direct/yaffs_norif1.c b/direct/yaffs_norif1.c index c49b6c4..4e660d0 100644 --- a/direct/yaffs_norif1.c +++ b/direct/yaffs_norif1.c @@ -35,7 +35,7 @@ * */ -const char *yaffs_norif1_c_version = "$Id: yaffs_norif1.c,v 1.2 2008-11-11 01:48:47 charles Exp $"; +const char *yaffs_norif1_c_version = "$Id: yaffs_norif1.c,v 1.3 2008-11-13 01:50:16 charles Exp $"; #include "yaffs_norif1.h" @@ -219,11 +219,14 @@ int ynorif1_ReadChunkFromNAND(yaffs_Device *dev,int chunkInNAND, __u8 *data, yaf { ynorif1_FlashRead32(spareAddr,(__u32 *)spare,16/ 4); - /* If the page status is 0xF then it was written properly + /* If the page status is YNOR_POSTMARKER then it was written properly * so change that to 0xFF so that the rest of yaffs is happy. */ if(spare->pageStatus == YNOR_POSTMARKER) spare->pageStatus = 0xFF; + else if(spare->pageStatus != 0xff && + (spare->pageStatus | YNOR_PREMARKER != 0xff)) + spare->pageStatus = YNOR_PREMARKER; } -- 2.30.2