eat your card, so please don't use it together with valuable data.
Use readonly driver (CONFIG_SSFDC) instead.
-config SM_FTL_MUSEUM
- boolean "Additional Support for 1MiB and 2MiB SmartMedia cards"
- depends on SM_FTL
- select MTD_NAND_ECC_SMC
- help
- Very old SmartMedia cards need ECC to be calculated in the FTL.
- Such cards are very rare, thus enabling this option is mostly useless.
- Also this support is completely UNTESTED.
-
config MTD_OOPS
tristate "Log panic/oops to an MTD buffer"
depends on MTD
#include <linux/freezer.h>
#include <linux/sysfs.h>
#include <linux/bitops.h>
+#include <linux/mtd/nand_ecc.h>
#include "nand/sm_common.h"
#include "sm_ftl.h"
-#ifdef CONFIG_SM_FTL_MUSEUM
-#include <linux/mtd/nand_ecc.h>
-#endif
struct workqueue_struct *cache_flush_workqueue;
static int sm_correct_sector(uint8_t *buffer, struct sm_oob *oob)
{
-#ifdef CONFIG_SM_FTL_MUSEUM
uint8_t ecc[3];
__nand_calculate_ecc(buffer, SM_SMALL_PAGE, ecc);
__nand_calculate_ecc(buffer, SM_SMALL_PAGE, ecc);
if (__nand_correct_data(buffer, ecc, oob->ecc2, SM_SMALL_PAGE) < 0)
return -EIO;
-#endif
return 0;
}
oob.data_status = 0;
}
-#ifdef CONFIG_SM_FTL_MUSEUM
if (ftl->smallpagenand) {
__nand_calculate_ecc(buf + boffset,
SM_SMALL_PAGE, oob.ecc1);
__nand_calculate_ecc(buf + boffset + SM_SMALL_PAGE,
SM_SMALL_PAGE, oob.ecc2);
}
-#endif
if (!sm_write_sector(ftl, zone, block, boffset,
buf + boffset, &oob))
continue;