summaryrefslogtreecommitdiff
path: root/yaffs_nand.c
diff options
context:
space:
mode:
authorcharles <charles>2006-10-03 10:13:03 +0000
committercharles <charles>2006-10-03 10:13:03 +0000
commit378bbdf4d64b8b26db55a495ab6ae520ff62e471 (patch)
tree73cdee857d1404a4250eb9880ef75e01e4e07766 /yaffs_nand.c
parent7458406d72d761247dc994f82f9879d9f4ecee56 (diff)
Add large NAND support and improve retirement handling
Diffstat (limited to 'yaffs_nand.c')
-rw-r--r--yaffs_nand.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/yaffs_nand.c b/yaffs_nand.c
index 989e8d9..26acf20 100644
--- a/yaffs_nand.c
+++ b/yaffs_nand.c
@@ -13,7 +13,7 @@
*/
const char *yaffs_nand_c_version =
- "$Id: yaffs_nand.c,v 1.2 2006-09-21 08:13:59 charles Exp $";
+ "$Id: yaffs_nand.c,v 1.3 2006-10-03 10:13:03 charles Exp $";
#include "yaffs_nand.h"
#include "yaffs_tagscompat.h"
@@ -25,8 +25,13 @@ int yaffs_ReadChunkWithTagsFromNAND(yaffs_Device * dev, int chunkInNAND,
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,
@@ -41,6 +46,7 @@ int yaffs_ReadChunkWithTagsFromNAND(yaffs_Device * dev, int chunkInNAND,
yaffs_BlockInfo *bi = yaffs_GetBlockInfo(dev, chunkInNAND/dev->nChunksPerBlock);
bi->gcPrioritise = 1;
+ dev->hasPendingPrioritisedGCs = 1;
}
return result;