*
*/
-const char *yaffs_mtdif_c_version = "$Id: yaffs_mtdif.c,v 1.5 2005-07-31 06:47:12 marty Exp $";
+const char *yaffs_mtdif_c_version = "$Id: yaffs_mtdif.c,v 1.9 2005-08-02 19:18:44 luc Exp $";
#include "yportenv.h"
-#ifdef CONFIG_YAFFS_MTD_ENABLED
+#ifdef CONFIG_YAFFS_YAFFS1
#include "yaffs_mtdif.h"
#include "linux/mtd/mtd.h"
#include "linux/types.h"
#include "linux/time.h"
-
-#ifndef CONFIG_YAFFS_USE_OLD_MTD
#include "linux/mtd/nand.h"
-#endif
static struct nand_oobinfo yaffs_oobinfo = {
.useecc = 1,
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,8))
+ .eccbytes = 6,
+#endif
.eccpos = {8, 9, 10, 13, 14, 15}
};
__u8 *spareAsBytes = (__u8 *)spare;
-#ifndef CONFIG_YAFFS_USE_OLD_MTD
if(data && spare)
{
if(dev->useNANDECC)
- mtd->write_ecc(mtd,addr,dev->nBytesPerChunk,&dummy,data,spareAsBytes,&yaffs_oobinfo);
+ retval = mtd->write_ecc(mtd,addr,dev->nBytesPerChunk,&dummy,data,spareAsBytes,&yaffs_oobinfo);
else
- mtd->write_ecc(mtd,addr,dev->nBytesPerChunk,&dummy,data,spareAsBytes,&yaffs_noeccinfo);
+ retval = mtd->write_ecc(mtd,addr,dev->nBytesPerChunk,&dummy,data,spareAsBytes,&yaffs_noeccinfo);
}
else
{
-#endif
if(data)
retval = mtd->write(mtd,addr,dev->nBytesPerChunk,&dummy,data);
if(spare)
retval = mtd->write_oob(mtd,addr,YAFFS_BYTES_PER_SPARE,&dummy,spareAsBytes);
-#ifndef CONFIG_YAFFS_USE_OLD_MTD
}
-#endif
if (retval == 0)
return YAFFS_OK;
__u8 *spareAsBytes = (__u8 *)spare;
-#ifndef CONFIG_YAFFS_USE_OLD_MTD
if(data && spare)
{
if(dev->useNANDECC)
}
else
{
-#endif
if(data)
retval = mtd->read(mtd,addr,dev->nBytesPerChunk,&dummy,data);
if(spare)
retval = mtd->read_oob(mtd,addr,YAFFS_BYTES_PER_SPARE,&dummy,spareAsBytes);
-#ifndef CONFIG_YAFFS_USE_OLD_MTD
}
-#endif
if (retval == 0)
return YAFFS_OK;
return YAFFS_OK;
}
-#endif // CONFIG_YAFFS_MTD_ENABLED
+#endif // CONFIG_YAFFS_YAFFS1