X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=yaffs_nand.c;h=af4215772482a2b11db0c77ad1885f75180f0712;hp=b919da07b8384b90564383f8257bffd82803caaa;hb=a6328592d74d696a9c8fbeb222e69c81e26fa78d;hpb=6f1de4473200f31d1ca1cf4672baf7afcdec2db0 diff --git a/yaffs_nand.c b/yaffs_nand.c index b919da0..af42157 100644 --- a/yaffs_nand.c +++ b/yaffs_nand.c @@ -9,16 +9,16 @@ * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. - * */ - + const char *yaffs_nand_c_version = - "$Id: yaffs_nand.c,v 1.6 2007-02-12 16:55:26 wookey Exp $"; + "$Id: yaffs_nand.c,v 1.9 2008-05-05 07:58:58 charles Exp $"; #include "yaffs_nand.h" #include "yaffs_tagscompat.h" #include "yaffs_tagsvalidity.h" +#include "yaffs_getblockinfo.h" int yaffs_ReadChunkWithTagsFromNAND(yaffs_Device * dev, int chunkInNAND, __u8 * buffer, @@ -26,9 +26,9 @@ int yaffs_ReadChunkWithTagsFromNAND(yaffs_Device * dev, int chunkInNAND, { int result; yaffs_ExtendedTags localTags; - + int realignedChunkInNAND = chunkInNAND - dev->chunkOffset; - + /* If there are no tags provided, use local tags to get prioritised gc working */ if(!tags) tags = &localTags; @@ -40,14 +40,14 @@ int yaffs_ReadChunkWithTagsFromNAND(yaffs_Device * dev, int chunkInNAND, result = yaffs_TagsCompatabilityReadChunkWithTagsFromNAND(dev, realignedChunkInNAND, buffer, - tags); - if(tags && + tags); + if(tags && tags->eccResult > YAFFS_ECC_RESULT_NO_ERROR){ - + yaffs_BlockInfo *bi = yaffs_GetBlockInfo(dev, chunkInNAND/dev->nChunksPerBlock); yaffs_HandleChunkError(dev,bi); } - + return result; } @@ -58,7 +58,7 @@ int yaffs_WriteChunkWithTagsToNAND(yaffs_Device * dev, { chunkInNAND -= dev->chunkOffset; - + if (tags) { tags->sequenceNumber = dev->sequenceNumber; tags->chunkUsed = 1; @@ -99,7 +99,7 @@ int yaffs_MarkBlockBad(yaffs_Device * dev, int blockNo) int yaffs_QueryInitialBlockState(yaffs_Device * dev, int blockNo, yaffs_BlockState * state, - unsigned *sequenceNumber) + __u32 *sequenceNumber) { blockNo -= dev->blockOffset; @@ -132,4 +132,4 @@ int yaffs_InitialiseNAND(struct yaffs_DeviceStruct *dev) } - +