diff --git a/fs/yaffs2/yaffs_fs.c b/fs/yaffs2/yaffs_fs.c index 11eca48d064f..62933f89d6f1 100644 --- a/fs/yaffs2/yaffs_fs.c +++ b/fs/yaffs2/yaffs_fs.c @@ -2633,6 +2633,9 @@ static struct super_block *yaffs_internal_read_super(int yaffsVersion, param->nReservedBlocks = 5; param->nShortOpCaches = (options.no_cache) ? 0 : 10; param->inbandTags = options.inband_tags; +#if defined (CONFIG_ARCH_RK2818) || (CONFIG_ARCH_RK29) + dev->inbandTags = 1; +#endif #ifdef CONFIG_YAFFS_DISABLE_LAZY_LOAD param->disableLazyLoad = 1; diff --git a/fs/yaffs2/yaffs_mtdif2.c b/fs/yaffs2/yaffs_mtdif2.c index c1d447819970..8abf2491d7a2 100644 --- a/fs/yaffs2/yaffs_mtdif2.c +++ b/fs/yaffs2/yaffs_mtdif2.c @@ -179,7 +179,12 @@ int nandmtd2_ReadChunkWithTagsFromNAND(yaffs_Device *dev, int chunkInNAND, if (localData) yaffs_ReleaseTempBuffer(dev, data, __LINE__); +#ifdef CONFIG_MTD_NAND_RK29 + //dxj 20101221@ if return -EBADMSG then i think the page is badchunk so just set the eccResult=YAFFS_ECC_RESULT_NO_ERROR + if (tags && retval == -EBADMSG /*&& tags->eccResult == YAFFS_ECC_RESULT_NO_ERROR*/) { +#else if (tags && retval == -EBADMSG && tags->eccResult == YAFFS_ECC_RESULT_NO_ERROR) { +#endif tags->eccResult = YAFFS_ECC_RESULT_UNFIXED; dev->eccUnfixed++; }