Lines Matching refs:ecc

93  * struct rk_ecc_cnt_status: represent a ecc status data.
197 return (u8 *)p + i * chip->ecc.size;
214 poi = chip->oob_poi + rknand->metadata_size + chip->ecc.bytes * i;
221 return chip->ecc.size + chip->ecc.bytes + NFC_SYS_DATA_SIZE;
235 return nfc->page_buf + i * rk_nfc_data_len(chip) + chip->ecc.size;
265 struct nand_ecc_ctrl *ecc = &chip->ecc;
299 if (nfc->cur_ecc != ecc->strength)
300 rk_nfc_hw_ecc_setup(chip, ecc->strength);
512 struct nand_ecc_ctrl *ecc = &chip->ecc;
518 rknand->boot_ecc != ecc->strength) {
529 for (i = 0; i < ecc->steps; i++) {
534 ecc->size);
571 rk_nfc_buf_to_oob_ptr(chip, ecc->steps - 1),
580 ecc->bytes);
594 struct nand_ecc_ctrl *ecc = &chip->ecc;
595 int oob_step = (ecc->bytes > 60) ? NFC_MAX_OOB_PER_STEP :
639 if (rknand->boot_ecc != ecc->strength)
643 for (i = 0; i < ecc->steps; i++) {
645 oob = chip->oob_poi + (ecc->steps - 1) * NFC_SYS_DATA_SIZE;
660 ecc->steps * oob_step,
666 rk_nfc_xfer_start(nfc, NFC_WRITE, ecc->steps, dma_data,
681 dma_unmap_single(nfc->dev, dma_oob, ecc->steps * oob_step,
684 if (boot_rom_mode && rknand->boot_ecc != ecc->strength)
685 rk_nfc_hw_ecc_setup(chip, ecc->strength);
706 struct nand_ecc_ctrl *ecc = &chip->ecc;
712 rknand->boot_ecc != ecc->strength) {
722 for (i = 0; i < ecc->steps; i++) {
731 memcpy(rk_nfc_buf_to_oob_ptr(chip, ecc->steps - 1),
742 ecc->bytes);
748 ecc->size);
760 struct nand_ecc_ctrl *ecc = &chip->ecc;
761 int oob_step = (ecc->bytes > 60) ? NFC_MAX_OOB_PER_STEP :
776 ecc->steps * oob_step,
787 if (rknand->boot_ecc != ecc->strength)
793 rk_nfc_xfer_start(nfc, NFC_READ, ecc->steps, dma_data,
808 dma_unmap_single(nfc->dev, dma_oob, ecc->steps * oob_step,
817 for (i = 0; i < ecc->steps; i++) {
819 oob = chip->oob_poi + (ecc->steps - 1) * NFC_SYS_DATA_SIZE;
834 for (i = 0; i < (ecc->steps / 2); i++) {
856 if (boot_rom_mode && rknand->boot_ecc != ecc->strength)
857 rk_nfc_hw_ecc_setup(chip, ecc->strength);
863 dev_err(nfc->dev, "read page: %x ecc error!\n", page);
967 .ecc = rk_nfc_ooblayout_ecc,
974 struct nand_ecc_ctrl *ecc = &chip->ecc;
981 if (!ecc->size || !ecc->strength ||
982 ecc->strength > nfc_max_strength) {
983 chip->ecc.size = 1024;
984 ecc->steps = mtd->writesize / ecc->size;
990 max_strength = ((mtd->oobsize / ecc->steps) - 4) * 8 /
1005 ecc->strength = strengths[i];
1007 ecc->steps = mtd->writesize / ecc->size;
1008 ecc->bytes = DIV_ROUND_UP(ecc->strength * fls(8 * chip->ecc.size), 8);
1019 struct nand_ecc_ctrl *ecc = &chip->ecc;
1029 if (ecc->engine_type != NAND_ECC_ENGINE_TYPE_ON_HOST)
1036 rknand->metadata_size = NFC_SYS_DATA_SIZE * ecc->steps;
1056 new_oob_len = ecc->steps * NFC_MAX_OOB_PER_STEP;
1086 chip->ecc.write_page_raw = rk_nfc_write_page_raw;
1087 chip->ecc.write_page = rk_nfc_write_page_hwecc;
1088 chip->ecc.write_oob = rk_nfc_write_oob;
1090 chip->ecc.read_page_raw = rk_nfc_read_page_raw;
1091 chip->ecc.read_page = rk_nfc_read_page_hwecc;
1092 chip->ecc.read_oob = rk_nfc_read_oob;
1159 chip->ecc.engine_type = NAND_ECC_ENGINE_TYPE_ON_HOST;
1180 ret = of_property_read_u32(np, "rockchip,boot-ecc-strength",
1182 rknand->boot_ecc = ret ? chip->ecc.strength : tmp;