diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h index 726c2d1b258947a077607154796271384b02dbb7..cf5ea8cdcf8e3a9a325da9a6f28f6fb120ea1319 100644 --- a/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h @@ -164,6 +164,9 @@ struct mtd_info { /* ECC layout structure pointer - read only! */ struct nand_ecclayout *ecclayout; + /* max number of correctible bit errors per writesize */ + unsigned int ecc_strength; + /* Data for variable erase regions. If numeraseregions is zero, * it means that the whole device has erasesize as given above. */ diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h index 609868f3db420e0a5a7b178a8668f8e74d08ed2c..1482340d3d9f5e0a6ba5d61a020b112320618362 100644 --- a/include/linux/mtd/nand.h +++ b/include/linux/mtd/nand.h @@ -324,6 +324,7 @@ struct nand_hw_control { * @steps: number of ECC steps per page * @size: data bytes per ECC step * @bytes: ECC bytes per step + * @strength: max number of correctible bits per ECC step * @total: total number of ECC bytes per page * @prepad: padding information for syndrome based ECC generators * @postpad: padding information for syndrome based ECC generators @@ -351,6 +352,7 @@ struct nand_ecc_ctrl { int size; int bytes; int total; + int strength; int prepad; int postpad; struct nand_ecclayout *layout;