Lines Matching defs:ecc

185 	struct mtd_oob_region ecc;
207 int bytes_per_step = DIV_ROUND_UP(BITS_PER_STEP_RS * chip->ecc.strength,
214 oobregion->length = round_up(bytes_per_step * chip->ecc.steps, 4);
226 .ecc = tegra_nand_ooblayout_rs_ecc,
234 int bytes_per_step = DIV_ROUND_UP(BITS_PER_STEP_BCH * chip->ecc.strength,
241 oobregion->length = round_up(bytes_per_step * chip->ecc.steps, 4);
247 .ecc = tegra_nand_ooblayout_bch_ecc,
485 if (chip->ecc.algo == NAND_ECC_ALGO_BCH && enable)
710 if (fail_sec_flag ^ GENMASK(chip->ecc.steps - 1, 0)) {
726 for_each_set_bit(bit, &fail_sec_flag, chip->ecc.steps) {
727 u8 *data = buf + (chip->ecc.size * bit);
728 u8 *oob = chip->oob_poi + nand->ecc.offset +
729 (chip->ecc.bytes * bit);
731 ret = nand_check_erased_ecc_chunk(data, chip->ecc.size,
732 oob, chip->ecc.bytes,
734 chip->ecc.strength);
849 bool maximize = base->ecc.user_conf.flags & NAND_ECC_MAXIMIZE_STRENGTH;
870 bytes_per_page = round_up(bytes_per_step * chip->ecc.steps, 4);
885 switch (chip->ecc.algo) {
927 chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_ON_HOST;
928 chip->ecc.size = 512;
929 chip->ecc.steps = mtd->writesize / chip->ecc.size;
936 chip->ecc.read_page = tegra_nand_read_page_hwecc;
937 chip->ecc.write_page = tegra_nand_write_page_hwecc;
938 chip->ecc.read_page_raw = tegra_nand_read_page_raw;
939 chip->ecc.write_page_raw = tegra_nand_write_page_raw;
940 chip->ecc.read_oob = tegra_nand_read_oob;
941 chip->ecc.write_oob = tegra_nand_write_oob;
946 if (chip->ecc.algo == NAND_ECC_ALGO_UNKNOWN) {
948 chip->ecc.algo = NAND_ECC_ALGO_RS;
950 chip->ecc.algo = NAND_ECC_ALGO_BCH;
953 if (chip->ecc.algo == NAND_ECC_ALGO_BCH && mtd->writesize < 2048) {
958 if (!chip->ecc.strength) {
967 chip->ecc.strength = ret;
973 switch (chip->ecc.algo) {
975 bits_per_step = BITS_PER_STEP_RS * chip->ecc.strength;
979 switch (chip->ecc.strength) {
991 chip->ecc.strength);
996 bits_per_step = BITS_PER_STEP_BCH * chip->ecc.strength;
999 switch (chip->ecc.strength) {
1014 chip->ecc.strength);
1024 chip->ecc.algo == NAND_ECC_ALGO_BCH ? "BCH" : "RS",
1025 chip->ecc.strength);
1027 chip->ecc.bytes = DIV_ROUND_UP(bits_per_step, BITS_PER_BYTE);
1132 mtd_ooblayout_ecc(mtd, 0, &nand->ecc);