Lines Matching refs:ecc

201 	return (u8 *)p + i * chip->ecc.size;  in rk_nfc_buf_to_data_ptr()
218 poi = chip->oob_poi + rknand->metadata_size + chip->ecc.bytes * i; in rk_nfc_buf_to_oob_ecc_ptr()
225 return chip->ecc.size + chip->ecc.bytes + NFC_SYS_DATA_SIZE; in rk_nfc_data_len()
239 return nfc->page_buf + i * rk_nfc_data_len(chip) + chip->ecc.size; in rk_nfc_oob_ptr()
270 struct nand_ecc_ctrl *ecc = &chip->ecc; in rk_nfc_select_chip() local
304 if (nfc->cur_ecc != ecc->strength) in rk_nfc_select_chip()
305 rk_nfc_hw_ecc_setup(chip, ecc->strength); in rk_nfc_select_chip()
440 struct nand_ecc_ctrl *ecc = &chip->ecc; in rk_nfc_write_page_raw() local
445 rknand->boot_ecc != ecc->strength) { in rk_nfc_write_page_raw()
456 for (i = 0; i < ecc->steps; i++) { in rk_nfc_write_page_raw()
461 ecc->size); in rk_nfc_write_page_raw()
497 rk_nfc_buf_to_oob_ptr(chip, ecc->steps - 1), in rk_nfc_write_page_raw()
506 ecc->bytes); in rk_nfc_write_page_raw()
522 struct nand_ecc_ctrl *ecc = &chip->ecc; in rk_nfc_write_page_hwecc() local
523 int oob_step = (ecc->bytes > 60) ? NFC_MAX_OOB_PER_STEP : in rk_nfc_write_page_hwecc()
559 if (rknand->boot_ecc != ecc->strength) in rk_nfc_write_page_hwecc()
563 for (i = 0; i < ecc->steps; i++) { in rk_nfc_write_page_hwecc()
584 ecc->steps * oob_step, in rk_nfc_write_page_hwecc()
587 rk_nfc_xfer_start(nfc, NFC_WRITE, ecc->steps, dma_data, in rk_nfc_write_page_hwecc()
593 dma_unmap_single(dma_oob, ecc->steps * oob_step, in rk_nfc_write_page_hwecc()
596 if (boot_rom_mode && rknand->boot_ecc != ecc->strength) in rk_nfc_write_page_hwecc()
597 rk_nfc_hw_ecc_setup(chip, ecc->strength); in rk_nfc_write_page_hwecc()
621 struct nand_ecc_ctrl *ecc = &chip->ecc; in rk_nfc_read_page_raw() local
627 rknand->boot_ecc != ecc->strength) { in rk_nfc_read_page_raw()
637 for (i = 0; i < ecc->steps; i++) { in rk_nfc_read_page_raw()
646 memcpy(rk_nfc_buf_to_oob_ptr(chip, ecc->steps - 1), in rk_nfc_read_page_raw()
657 ecc->bytes); in rk_nfc_read_page_raw()
663 ecc->size); in rk_nfc_read_page_raw()
677 struct nand_ecc_ctrl *ecc = &chip->ecc; in rk_nfc_read_page_hwecc() local
678 int oob_step = (ecc->bytes > 60) ? NFC_MAX_OOB_PER_STEP : in rk_nfc_read_page_hwecc()
693 ecc->steps * oob_step, in rk_nfc_read_page_hwecc()
704 if (rknand->boot_ecc != ecc->strength) in rk_nfc_read_page_hwecc()
708 rk_nfc_xfer_start(nfc, NFC_READ, ecc->steps, dma_data, in rk_nfc_read_page_hwecc()
714 dma_unmap_single(dma_oob, ecc->steps * oob_step, in rk_nfc_read_page_hwecc()
723 for (i = 1; i < ecc->steps; i++) { in rk_nfc_read_page_hwecc()
735 for (i = 0; i < (ecc->steps / 2); i++) { in rk_nfc_read_page_hwecc()
757 if (boot_rom_mode && rknand->boot_ecc != ecc->strength) in rk_nfc_read_page_hwecc()
758 rk_nfc_hw_ecc_setup(chip, ecc->strength); in rk_nfc_read_page_hwecc()
853 .ecc = rk_nfc_ooblayout_ecc,
860 struct nand_ecc_ctrl *ecc = &chip->ecc; in rk_nfc_ecc_init() local
866 if (!ecc->size || !ecc->strength || in rk_nfc_ecc_init()
867 ecc->strength > nfc_max_strength) { in rk_nfc_ecc_init()
868 chip->ecc.size = 1024; in rk_nfc_ecc_init()
869 ecc->steps = mtd->writesize / ecc->size; in rk_nfc_ecc_init()
875 max_strength = ((mtd->oobsize / ecc->steps) - 4) * 8 / in rk_nfc_ecc_init()
890 ecc->strength = strengths[i]; in rk_nfc_ecc_init()
892 ecc->steps = mtd->writesize / ecc->size; in rk_nfc_ecc_init()
893 ecc->bytes = DIV_ROUND_UP(ecc->strength * fls(8 * chip->ecc.size), 8); in rk_nfc_ecc_init()
902 struct nand_ecc_ctrl *ecc; in rk_nfc_nand_chip_init() local
945 ecc = &chip->ecc; in rk_nfc_nand_chip_init()
946 ecc->mode = NAND_ECC_HW_SYNDROME; in rk_nfc_nand_chip_init()
949 ecc->strength = ret ? 0 : tmp; in rk_nfc_nand_chip_init()
952 ecc->size = ret ? 0 : tmp; in rk_nfc_nand_chip_init()
988 rknand->boot_ecc = ret ? ecc->strength : tmp; in rk_nfc_nand_chip_init()
990 rknand->metadata_size = NFC_SYS_DATA_SIZE * ecc->steps; in rk_nfc_nand_chip_init()
1014 ecc->read_page = rk_nfc_read_page_hwecc; in rk_nfc_nand_chip_init()
1015 ecc->read_page_raw = rk_nfc_read_page_raw; in rk_nfc_nand_chip_init()
1016 ecc->read_oob = rk_nfc_read_oob; in rk_nfc_nand_chip_init()
1017 ecc->write_page = rk_nfc_write_page_hwecc; in rk_nfc_nand_chip_init()
1018 ecc->write_page_raw = rk_nfc_write_page_raw; in rk_nfc_nand_chip_init()
1019 ecc->write_oob = rk_nfc_write_oob; in rk_nfc_nand_chip_init()