*
*/
-const char *yaffs_mtdif_c_version = "$Id: yaffs_mtdif.c,v 1.1 2004-12-17 04:39:04 charles Exp $";
-
-#ifdef CONFIG_YAFFS_MTD_ENABLED
+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_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
-struct nand_oobinfo yaffs_oobinfo = {
- useecc: 1,
- eccpos: {8, 9, 10, 13, 14, 15}
+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}
};
-struct nand_oobinfo yaffs_noeccinfo = {
- useecc: 0,
+static struct nand_oobinfo yaffs_noeccinfo = {
+ .useecc = 0,
};
-int nandmtd_WriteChunkToNAND(yaffs_Device *dev,int chunkInNAND,const __u8 *data, yaffs_Spare *spare)
+int nandmtd_WriteChunkToNAND(yaffs_Device *dev,int chunkInNAND,const __u8 *data, const yaffs_Spare *spare)
{
struct mtd_info *mtd = (struct mtd_info *)(dev->genericDevice);
size_t dummy;
__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