Lines Matching defs:ecc

66 	struct micron_on_die_ecc ecc;
127 .ecc = micron_nand_on_die_4_ooblayout_ecc,
140 oobregion->offset = mtd->oobsize - chip->ecc.total;
141 oobregion->length = chip->ecc.total;
156 oobregion->length = mtd->oobsize - chip->ecc.total - 2;
162 .ecc = micron_nand_on_die_8_ooblayout_ecc,
172 if (micron->ecc.forced)
175 if (micron->ecc.enabled == enable)
183 micron->ecc.enabled = enable;
242 ret = nand_read_page_op(chip, page, 0, micron->ecc.rawbuf,
247 for (step = 0; step < chip->ecc.steps; step++) {
251 offs = step * chip->ecc.size;
252 rawbuf = micron->ecc.rawbuf + offs;
255 for (i = 0; i < chip->ecc.size; i++)
259 rawbuf = micron->ecc.rawbuf + mtd->writesize + offs;
262 for (i = 0; i < chip->ecc.bytes + 4; i++)
265 if (WARN_ON(nbitflips > chip->ecc.strength))
355 if (chip->ecc.strength == 4)
505 chip->ecc.engine_type != NAND_ECC_ENGINE_TYPE_ON_DIE) {
511 if (chip->ecc.engine_type == NAND_ECC_ENGINE_TYPE_ON_DIE) {
519 micron->ecc.forced = true;
520 micron->ecc.enabled = true;
532 micron->ecc.rawbuf = kmalloc(mtd->writesize +
535 if (!micron->ecc.rawbuf) {
548 chip->ecc.bytes = requirements->strength * 2;
549 chip->ecc.size = 512;
550 chip->ecc.strength = requirements->strength;
551 chip->ecc.algo = NAND_ECC_ALGO_BCH;
552 chip->ecc.read_page = micron_nand_read_page_on_die_ecc;
553 chip->ecc.write_page = micron_nand_write_page_on_die_ecc;
556 chip->ecc.read_page_raw = nand_read_page_raw_notsupp;
557 chip->ecc.write_page_raw = nand_write_page_raw_notsupp;
559 if (!chip->ecc.read_page_raw)
560 chip->ecc.read_page_raw = nand_read_page_raw;
561 if (!chip->ecc.write_page_raw)
562 chip->ecc.write_page_raw = nand_write_page_raw;
569 kfree(micron->ecc.rawbuf);
579 kfree(micron->ecc.rawbuf);