Lines Matching refs:ecc
329 for (i = 0; i < chip->ecc.bytes; i++) in omap_calculate_ecc()
335 ecc_code[chip->ecc.bytes - 1] = 0x00; in omap_calculate_ecc()
498 struct nand_ecc_ctrl *ecc = &chip->ecc; in omap_correct_data_bch() local
508 for (i = 0; i < ecc->bytes && !ecc_flag; i++) { in omap_correct_data_bch()
517 for (i = 0; i < ecc->bytes && !ecc_flag; i++) { in omap_correct_data_bch()
531 omap_reverse_list(calc_ecc, ecc->bytes - 1); in omap_correct_data_bch()
535 omap_reverse_list(calc_ecc, ecc->bytes); in omap_correct_data_bch()
551 error_max = SECTOR_BYTES + (ecc->bytes - 1); in omap_correct_data_bch()
554 error_max = SECTOR_BYTES + ecc->bytes; in omap_correct_data_bch()
588 int i, eccsize = chip->ecc.size; in omap_read_page_bch()
589 int eccbytes = chip->ecc.bytes; in omap_read_page_bch()
590 int eccsteps = chip->ecc.steps; in omap_read_page_bch()
594 uint32_t *eccpos = chip->ecc.layout->eccpos; in omap_read_page_bch()
601 oob_pos = (eccsize * eccsteps) + chip->ecc.layout->eccpos[0]; in omap_read_page_bch()
602 oob += chip->ecc.layout->eccpos[0]; in omap_read_page_bch()
606 chip->ecc.hwctl(mtd, NAND_ECC_READ); in omap_read_page_bch()
615 chip->ecc.calculate(mtd, p, &ecc_calc[i]); in omap_read_page_bch()
621 for (i = 0; i < chip->ecc.total; i++) in omap_read_page_bch()
624 eccsteps = chip->ecc.steps; in omap_read_page_bch()
630 stat = chip->ecc.correct(mtd, p, &ecc_code[i], &ecc_calc[i]); in omap_read_page_bch()
726 nand->ecc.mode = NAND_ECC_SOFT; in omap_select_ecc_scheme()
727 nand->ecc.layout = NULL; in omap_select_ecc_scheme()
728 nand->ecc.size = 0; in omap_select_ecc_scheme()
741 memset(&nand->ecc, 0, sizeof(struct nand_ecc_ctrl)); in omap_select_ecc_scheme()
742 nand->ecc.mode = NAND_ECC_HW; in omap_select_ecc_scheme()
743 nand->ecc.strength = 1; in omap_select_ecc_scheme()
744 nand->ecc.size = SECTOR_BYTES; in omap_select_ecc_scheme()
745 nand->ecc.bytes = 3; in omap_select_ecc_scheme()
746 nand->ecc.hwctl = omap_enable_hwecc; in omap_select_ecc_scheme()
747 nand->ecc.correct = omap_correct_data; in omap_select_ecc_scheme()
748 nand->ecc.calculate = omap_calculate_ecc; in omap_select_ecc_scheme()
750 ecclayout->eccbytes = nand->ecc.bytes * eccsteps; in omap_select_ecc_scheme()
778 memset(&nand->ecc, 0, sizeof(struct nand_ecc_ctrl)); in omap_select_ecc_scheme()
779 nand->ecc.mode = NAND_ECC_HW; in omap_select_ecc_scheme()
780 nand->ecc.strength = 8; in omap_select_ecc_scheme()
781 nand->ecc.size = SECTOR_BYTES; in omap_select_ecc_scheme()
782 nand->ecc.bytes = 13; in omap_select_ecc_scheme()
783 nand->ecc.hwctl = omap_enable_hwecc; in omap_select_ecc_scheme()
784 nand->ecc.correct = omap_correct_data_bch_sw; in omap_select_ecc_scheme()
785 nand->ecc.calculate = omap_calculate_ecc; in omap_select_ecc_scheme()
787 ecclayout->eccbytes = nand->ecc.bytes * eccsteps; in omap_select_ecc_scheme()
790 if (i % nand->ecc.bytes) in omap_select_ecc_scheme()
819 memset(&nand->ecc, 0, sizeof(struct nand_ecc_ctrl)); in omap_select_ecc_scheme()
820 nand->ecc.mode = NAND_ECC_HW; in omap_select_ecc_scheme()
821 nand->ecc.strength = 8; in omap_select_ecc_scheme()
822 nand->ecc.size = SECTOR_BYTES; in omap_select_ecc_scheme()
823 nand->ecc.bytes = 14; in omap_select_ecc_scheme()
824 nand->ecc.hwctl = omap_enable_hwecc; in omap_select_ecc_scheme()
825 nand->ecc.correct = omap_correct_data_bch; in omap_select_ecc_scheme()
826 nand->ecc.calculate = omap_calculate_ecc; in omap_select_ecc_scheme()
827 nand->ecc.read_page = omap_read_page_bch; in omap_select_ecc_scheme()
829 ecclayout->eccbytes = nand->ecc.bytes * eccsteps; in omap_select_ecc_scheme()
853 nand->ecc.mode = NAND_ECC_HW; in omap_select_ecc_scheme()
854 nand->ecc.size = SECTOR_BYTES; in omap_select_ecc_scheme()
855 nand->ecc.bytes = 26; in omap_select_ecc_scheme()
856 nand->ecc.strength = 16; in omap_select_ecc_scheme()
857 nand->ecc.hwctl = omap_enable_hwecc; in omap_select_ecc_scheme()
858 nand->ecc.correct = omap_correct_data_bch; in omap_select_ecc_scheme()
859 nand->ecc.calculate = omap_calculate_ecc; in omap_select_ecc_scheme()
860 nand->ecc.read_page = omap_read_page_bch; in omap_select_ecc_scheme()
862 ecclayout->eccbytes = nand->ecc.bytes * eccsteps; in omap_select_ecc_scheme()
866 ecclayout->oobfree[0].length = oobsize - nand->ecc.bytes - in omap_select_ecc_scheme()
880 nand->ecc.layout = ecclayout; in omap_select_ecc_scheme()
1004 nand->ecc.layout = &omap_ecclayout; in board_nand_init()