int yaffs_ReadChunkWithTagsFromNAND(yaffs_Device * dev, int chunkInNAND, __u8 * buffer, yaffs_ExtendedTags * tags) { debug_nand("---------[%s]----------\n", __FUNCTION__); int result; yaffs_ExtendedTags localTags; int realignedChunkInNAND = chunkInNAND - dev->chunkOffset; //printk("realignedChunkInNAND=%d, dev->chunkOffset=%d\n", //realignedChunkInNAND, dev->chunkOffset); debug_nand("[%s] buffer=%p\n", __FUNCTION__, buffer); /* If there are no tags provided, use local tags to get prioritised gc working */ if(!tags) tags = &localTags; if (dev->readChunkWithTagsFromNAND) result = dev->readChunkWithTagsFromNAND(dev, realignedChunkInNAND, buffer, tags); else result = yaffs_TagsCompatabilityReadChunkWithTagsFromNAND(dev, realignedChunkInNAND, buffer, tags); if(tags && tags->eccResult > YAFFS_ECC_RESULT_NO_ERROR){ //yaffs_BlockInfo *bi = yaffs_GetBlockInfo(dev, chunkInNAND/dev->nChunksPerBlock); //Ken, org yaffs_BlockInfo *bi = yaffs_GetBlockInfo(dev, chunkInNAND >> dev->nChunksPerBlock_Shift); yaffs_HandleChunkError(dev,bi); }
int yaffs_ReadChunkWithTagsFromNAND(yaffs_Device * dev, int chunkInNAND, __u8 * buffer, yaffs_ExtendedTags * tags) { 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; if (dev->readChunkWithTagsFromNAND) result = dev->readChunkWithTagsFromNAND(dev, realignedChunkInNAND, buffer, tags); else result = yaffs_TagsCompatabilityReadChunkWithTagsFromNAND(dev, realignedChunkInNAND, buffer, 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; }
int yaffs_ReadChunkWithTagsFromNAND(yaffs_Device * dev, int chunkInNAND, __u8 * buffer, yaffs_ExtendedTags * tags) { chunkInNAND -= dev->chunkOffset; if (dev->readChunkWithTagsFromNAND) return dev->readChunkWithTagsFromNAND(dev, chunkInNAND, buffer, tags); else return yaffs_TagsCompatabilityReadChunkWithTagsFromNAND(dev, chunkInNAND, buffer, tags); }