Lines Matching defs:ecc
182 struct mtd_oob_region ecc;
204 int bytes_per_step = DIV_ROUND_UP(BITS_PER_STEP_RS * chip->ecc.strength,
211 oobregion->length = round_up(bytes_per_step * chip->ecc.steps, 4);
223 .ecc = tegra_nand_ooblayout_rs_ecc,
231 int bytes_per_step = DIV_ROUND_UP(BITS_PER_STEP_BCH * chip->ecc.strength,
238 oobregion->length = round_up(bytes_per_step * chip->ecc.steps, 4);
244 .ecc = tegra_nand_ooblayout_bch_ecc,
482 if (chip->ecc.algo == NAND_ECC_ALGO_BCH && enable)
707 if (fail_sec_flag ^ GENMASK(chip->ecc.steps - 1, 0)) {
723 for_each_set_bit(bit, &fail_sec_flag, chip->ecc.steps) {
724 u8 *data = buf + (chip->ecc.size * bit);
725 u8 *oob = chip->oob_poi + nand->ecc.offset +
726 (chip->ecc.bytes * bit);
728 ret = nand_check_erased_ecc_chunk(data, chip->ecc.size,
729 oob, chip->ecc.bytes,
731 chip->ecc.strength);
846 bool maximize = base->ecc.user_conf.flags & NAND_ECC_MAXIMIZE_STRENGTH;
867 bytes_per_page = round_up(bytes_per_step * chip->ecc.steps, 4);
882 switch (chip->ecc.algo) {
924 chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_ON_HOST;
925 chip->ecc.size = 512;
926 chip->ecc.steps = mtd->writesize / chip->ecc.size;
933 chip->ecc.read_page = tegra_nand_read_page_hwecc;
934 chip->ecc.write_page = tegra_nand_write_page_hwecc;
935 chip->ecc.read_page_raw = tegra_nand_read_page_raw;
936 chip->ecc.write_page_raw = tegra_nand_write_page_raw;
937 chip->ecc.read_oob = tegra_nand_read_oob;
938 chip->ecc.write_oob = tegra_nand_write_oob;
943 if (chip->ecc.algo == NAND_ECC_ALGO_UNKNOWN) {
945 chip->ecc.algo = NAND_ECC_ALGO_RS;
947 chip->ecc.algo = NAND_ECC_ALGO_BCH;
950 if (chip->ecc.algo == NAND_ECC_ALGO_BCH && mtd->writesize < 2048) {
955 if (!chip->ecc.strength) {
964 chip->ecc.strength = ret;
970 switch (chip->ecc.algo) {
972 bits_per_step = BITS_PER_STEP_RS * chip->ecc.strength;
976 switch (chip->ecc.strength) {
988 chip->ecc.strength);
993 bits_per_step = BITS_PER_STEP_BCH * chip->ecc.strength;
996 switch (chip->ecc.strength) {
1011 chip->ecc.strength);
1021 chip->ecc.algo == NAND_ECC_ALGO_BCH ? "BCH" : "RS",
1022 chip->ecc.strength);
1024 chip->ecc.bytes = DIV_ROUND_UP(bits_per_step, BITS_PER_BYTE);
1129 mtd_ooblayout_ecc(mtd, 0, &nand->ecc);