X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=yaffs_mtdif.c;h=9537b1a509c568f55495160d5151a98fc5ec0579;hp=2f418b9b6e36b82fd0b6e1603bf26eda80823ce8;hb=9625e7b16224f286bb177324f2c1283b9db08286;hpb=0f3e5663a6c6d1fe5b8c8abc1b44c7221c62f808 diff --git a/yaffs_mtdif.c b/yaffs_mtdif.c index 2f418b9..9537b1a 100644 --- a/yaffs_mtdif.c +++ b/yaffs_mtdif.c @@ -13,29 +13,29 @@ * */ -const char *yaffs_mtdif_c_version = "$Id: yaffs_mtdif.c,v 1.2 2005-07-19 20:41:59 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, }; @@ -49,24 +49,20 @@ int nandmtd_WriteChunkToNAND(yaffs_Device *dev,int chunkInNAND,const __u8 *data, __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; @@ -84,7 +80,6 @@ int nandmtd_ReadChunkFromNAND(yaffs_Device *dev,int chunkInNAND, __u8 *data, yaf __u8 *spareAsBytes = (__u8 *)spare; -#ifndef CONFIG_YAFFS_USE_OLD_MTD if(data && spare) { if(dev->useNANDECC) @@ -99,14 +94,11 @@ int nandmtd_ReadChunkFromNAND(yaffs_Device *dev,int chunkInNAND, __u8 *data, yaf } 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; @@ -159,5 +151,5 @@ int nandmtd_InitialiseNAND(yaffs_Device *dev) return YAFFS_OK; } -#endif // CONFIG_YAFFS_MTD_ENABLED +#endif // CONFIG_YAFFS_YAFFS1