Lines Matching defs:ecc
404 PKT_SIZE(chip->ecc.size) |
405 PKT_STEPS(chip->ecc.steps),
452 for (step = 0; step < chip->ecc.steps; step++) {
453 u8 *raw_buf = &buf[step * chip->ecc.size];
458 memset(anand->hw_ecc, 0, chip->ecc.bytes);
463 bf = bch_decode(anand->bch, raw_buf, chip->ecc.size,
470 if (anand->errloc[i] < (chip->ecc.size * 8)) {
483 bf = nand_check_erased_ecc_chunk(raw_buf, chip->ecc.size,
485 chip->ecc.strength);
489 memset(raw_buf, 0xFF, chip->ecc.size);
522 PKT_SIZE(chip->ecc.size) |
523 PKT_STEPS(chip->ecc.steps),
1112 struct nand_ecc_ctrl *ecc = &chip->ecc;
1132 switch (ecc->strength) {
1146 dev_err(nfc->dev, "Unsupported strength %d\n", ecc->strength);
1150 switch (ecc->size) {
1160 dev_err(nfc->dev, "Unsupported step size %d\n", ecc->strength);
1166 ecc->steps = mtd->writesize / ecc->size;
1167 ecc->algo = NAND_ECC_ALGO_BCH;
1168 anand->ecc_bits = bch_gf_mag * ecc->strength;
1169 ecc->bytes = DIV_ROUND_UP(anand->ecc_bits, 8);
1170 anand->ecc_total = DIV_ROUND_UP(anand->ecc_bits * ecc->steps, 8);
1176 anand->errloc = devm_kmalloc_array(nfc->dev, ecc->strength,
1181 anand->hw_ecc = devm_kmalloc(nfc->dev, ecc->bytes, GFP_KERNEL);
1186 anand->bch = bch_init(bch_gf_mag, ecc->strength, bch_prim_poly, true);
1190 ecc->read_page = anfc_sel_read_page_hw_ecc;
1191 ecc->write_page = anfc_sel_write_page_hw_ecc;
1237 chip->ecc.read_page_raw = nand_monolithic_read_page_raw;
1238 chip->ecc.write_page_raw = nand_monolithic_write_page_raw;
1240 switch (chip->ecc.engine_type) {
1250 chip->ecc.engine_type);