Lines Matching refs:ecc

316 	if (chip->ecc.strength == FMC2_ECC_BCH8) {  in stm32_fmc2_setup()
319 } else if (chip->ecc.strength == FMC2_ECC_BCH4) { in stm32_fmc2_setup()
383 dma_cfg.src_addr += chip->ecc.strength == FMC2_ECC_HAM ? in stm32_fmc2_select_chip()
394 fmc2->dma_ecc_len = chip->ecc.strength == FMC2_ECC_HAM ? in stm32_fmc2_select_chip()
498 if (chip->ecc.strength != FMC2_ECC_HAM) { in stm32_fmc2_hwctl()
520 static inline void stm32_fmc2_ham_set_ecc(const u32 ecc_sta, u8 *ecc) in stm32_fmc2_ham_set_ecc() argument
522 ecc[0] = ecc_sta; in stm32_fmc2_ham_set_ecc()
523 ecc[1] = ecc_sta >> 8; in stm32_fmc2_ham_set_ecc()
524 ecc[2] = ecc_sta >> 16; in stm32_fmc2_ham_set_ecc()
528 u8 *ecc) in stm32_fmc2_ham_calculate() argument
544 stm32_fmc2_ham_set_ecc(heccr, ecc); in stm32_fmc2_ham_calculate()
610 u8 *ecc) in stm32_fmc2_bch_calculate() argument
625 ecc[0] = bchpbr; in stm32_fmc2_bch_calculate()
626 ecc[1] = bchpbr >> 8; in stm32_fmc2_bch_calculate()
627 ecc[2] = bchpbr >> 16; in stm32_fmc2_bch_calculate()
628 ecc[3] = bchpbr >> 24; in stm32_fmc2_bch_calculate()
631 ecc[4] = bchpbr; in stm32_fmc2_bch_calculate()
632 ecc[5] = bchpbr >> 8; in stm32_fmc2_bch_calculate()
633 ecc[6] = bchpbr >> 16; in stm32_fmc2_bch_calculate()
635 if (chip->ecc.strength == FMC2_ECC_BCH8) { in stm32_fmc2_bch_calculate()
636 ecc[7] = bchpbr >> 24; in stm32_fmc2_bch_calculate()
639 ecc[8] = bchpbr; in stm32_fmc2_bch_calculate()
640 ecc[9] = bchpbr >> 8; in stm32_fmc2_bch_calculate()
641 ecc[10] = bchpbr >> 16; in stm32_fmc2_bch_calculate()
642 ecc[11] = bchpbr >> 24; in stm32_fmc2_bch_calculate()
645 ecc[12] = bchpbr; in stm32_fmc2_bch_calculate()
717 return stm32_fmc2_bch_decode(chip->ecc.size, dat, ecc_sta); in stm32_fmc2_bch_correct()
724 int ret, i, s, stat, eccsize = chip->ecc.size; in stm32_fmc2_read_page()
725 int eccbytes = chip->ecc.bytes; in stm32_fmc2_read_page()
726 int eccsteps = chip->ecc.steps; in stm32_fmc2_read_page()
727 int eccstrength = chip->ecc.strength; in stm32_fmc2_read_page()
729 u8 *ecc_calc = chip->ecc.calc_buf; in stm32_fmc2_read_page()
730 u8 *ecc_code = chip->ecc.code_buf; in stm32_fmc2_read_page()
739 chip->ecc.hwctl(chip, NAND_ECC_READ); in stm32_fmc2_read_page()
754 stat = chip->ecc.correct(chip, p, ecc_code, ecc_calc); in stm32_fmc2_read_page()
836 csqcfgr3 = FMC2_CSQCFGR3_SNBR(chip->ecc.steps - 1); in stm32_fmc2_rw_page_init()
894 int eccsteps = chip->ecc.steps; in stm32_fmc2_xfer()
895 int eccsize = chip->ecc.size; in stm32_fmc2_xfer()
1084 int eccbytes = chip->ecc.bytes; in stm32_fmc2_sequencer_correct()
1085 int eccsteps = chip->ecc.steps; in stm32_fmc2_sequencer_correct()
1086 int eccstrength = chip->ecc.strength; in stm32_fmc2_sequencer_correct()
1087 int i, s, eccsize = chip->ecc.size; in stm32_fmc2_sequencer_correct()
1142 u8 *ecc_calc = chip->ecc.calc_buf; in stm32_fmc2_sequencer_read_page()
1143 u8 *ecc_code = chip->ecc.code_buf; in stm32_fmc2_sequencer_read_page()
1179 chip->ecc.total); in stm32_fmc2_sequencer_read_page()
1184 return chip->ecc.correct(chip, buf, ecc_code, ecc_calc); in stm32_fmc2_sequencer_read_page()
1617 chip->ecc.correct = stm32_fmc2_sequencer_correct; in stm32_fmc2_nand_callbacks_setup()
1618 chip->ecc.write_page = stm32_fmc2_sequencer_write_page; in stm32_fmc2_nand_callbacks_setup()
1619 chip->ecc.read_page = stm32_fmc2_sequencer_read_page; in stm32_fmc2_nand_callbacks_setup()
1620 chip->ecc.write_page_raw = stm32_fmc2_sequencer_write_page_raw; in stm32_fmc2_nand_callbacks_setup()
1621 chip->ecc.read_page_raw = stm32_fmc2_sequencer_read_page_raw; in stm32_fmc2_nand_callbacks_setup()
1624 chip->ecc.hwctl = stm32_fmc2_hwctl; in stm32_fmc2_nand_callbacks_setup()
1625 if (chip->ecc.strength == FMC2_ECC_HAM) { in stm32_fmc2_nand_callbacks_setup()
1627 chip->ecc.calculate = stm32_fmc2_ham_calculate; in stm32_fmc2_nand_callbacks_setup()
1628 chip->ecc.correct = stm32_fmc2_ham_correct; in stm32_fmc2_nand_callbacks_setup()
1629 chip->ecc.options |= NAND_ECC_GENERIC_ERASED_CHECK; in stm32_fmc2_nand_callbacks_setup()
1632 chip->ecc.calculate = stm32_fmc2_bch_calculate; in stm32_fmc2_nand_callbacks_setup()
1633 chip->ecc.correct = stm32_fmc2_bch_correct; in stm32_fmc2_nand_callbacks_setup()
1634 chip->ecc.read_page = stm32_fmc2_read_page; in stm32_fmc2_nand_callbacks_setup()
1639 if (chip->ecc.strength == FMC2_ECC_HAM) in stm32_fmc2_nand_callbacks_setup()
1640 chip->ecc.bytes = chip->options & NAND_BUSWIDTH_16 ? 4 : 3; in stm32_fmc2_nand_callbacks_setup()
1641 else if (chip->ecc.strength == FMC2_ECC_BCH8) in stm32_fmc2_nand_callbacks_setup()
1642 chip->ecc.bytes = chip->options & NAND_BUSWIDTH_16 ? 14 : 13; in stm32_fmc2_nand_callbacks_setup()
1644 chip->ecc.bytes = chip->options & NAND_BUSWIDTH_16 ? 8 : 7; in stm32_fmc2_nand_callbacks_setup()
1652 struct nand_ecc_ctrl *ecc = &chip->ecc; in stm32_fmc2_nand_ooblayout_ecc() local
1657 oobregion->length = ecc->total; in stm32_fmc2_nand_ooblayout_ecc()
1667 struct nand_ecc_ctrl *ecc = &chip->ecc; in stm32_fmc2_nand_ooblayout_free() local
1672 oobregion->length = mtd->oobsize - ecc->total - FMC2_BBM_LEN; in stm32_fmc2_nand_ooblayout_free()
1673 oobregion->offset = ecc->total + FMC2_BBM_LEN; in stm32_fmc2_nand_ooblayout_free()
1679 .ecc = stm32_fmc2_nand_ooblayout_ecc,
1716 if (chip->ecc.mode != NAND_ECC_HW) { in stm32_fmc2_attach_chip()
1728 if (mtd->writesize / chip->ecc.size > FMC2_MAX_SG) { in stm32_fmc2_attach_chip()
1932 chip->ecc.mode = NAND_ECC_HW; in stm32_fmc2_probe()
1933 chip->ecc.size = FMC2_ECC_STEP_SIZE; in stm32_fmc2_probe()
1934 chip->ecc.strength = FMC2_ECC_BCH8; in stm32_fmc2_probe()