Lines Matching refs:ecc
170 u_int32_t ecc = 0; in nand_davinci_readecc() local
172 ecc = __raw_readl(&(davinci_emif_regs->nandfecc[ in nand_davinci_readecc()
175 return ecc; in nand_davinci_readecc()
238 if ((diff >> (12 + 3)) < this->ecc.size) { in nand_davinci_correct_data()
376 saved_ecc_layout = chip->ecc.layout; in nand_davinci_write_page()
377 chip->ecc.layout = &nand_keystone_rbl_4bit_layout_oobfirst; in nand_davinci_write_page()
378 mtd->oobavail = chip->ecc.layout->oobavail; in nand_davinci_write_page()
384 status = chip->ecc.write_page_raw(mtd, chip, buf, in nand_davinci_write_page()
387 status = chip->ecc.write_page(mtd, chip, buf, in nand_davinci_write_page()
407 chip->ecc.layout = saved_ecc_layout; in nand_davinci_write_page()
427 int i, eccsize = chip->ecc.size; in nand_davinci_read_page_hwecc()
428 int eccbytes = chip->ecc.bytes; in nand_davinci_read_page_hwecc()
429 int eccsteps = chip->ecc.steps; in nand_davinci_read_page_hwecc()
434 struct nand_ecclayout *saved_ecc_layout = chip->ecc.layout; in nand_davinci_read_page_hwecc()
438 chip->ecc.layout = &nand_keystone_rbl_4bit_layout_oobfirst; in nand_davinci_read_page_hwecc()
439 mtd->oobavail = chip->ecc.layout->oobavail; in nand_davinci_read_page_hwecc()
442 eccpos = chip->ecc.layout->eccpos; in nand_davinci_read_page_hwecc()
449 for (i = 0; i < chip->ecc.total; i++) in nand_davinci_read_page_hwecc()
455 chip->ecc.hwctl(mtd, NAND_ECC_READ); in nand_davinci_read_page_hwecc()
457 chip->ecc.calculate(mtd, p, &ecc_calc[i]); in nand_davinci_read_page_hwecc()
459 stat = chip->ecc.correct(mtd, p, &ecc_code[i], NULL); in nand_davinci_read_page_hwecc()
468 chip->ecc.layout = saved_ecc_layout; in nand_davinci_read_page_hwecc()
502 static u32 nand_davinci_4bit_readecc(struct mtd_info *mtd, unsigned int ecc[4]) in nand_davinci_4bit_readecc()
507 ecc[i] = __raw_readl(&davinci_emif_regs->nand4bitecc[i]) & in nand_davinci_4bit_readecc()
749 nand->ecc.read_page = nand_davinci_read_page_hwecc; in davinci_nand_init()
762 nand->ecc.mode = NAND_ECC_HW; in davinci_nand_init()
763 nand->ecc.size = 512; in davinci_nand_init()
764 nand->ecc.bytes = 3; in davinci_nand_init()
765 nand->ecc.strength = 1; in davinci_nand_init()
766 nand->ecc.calculate = nand_davinci_calculate_ecc; in davinci_nand_init()
767 nand->ecc.correct = nand_davinci_correct_data; in davinci_nand_init()
768 nand->ecc.hwctl = nand_davinci_enable_hwecc; in davinci_nand_init()
770 nand->ecc.mode = NAND_ECC_SOFT; in davinci_nand_init()
773 nand->ecc.mode = NAND_ECC_HW_OOB_FIRST; in davinci_nand_init()
774 nand->ecc.size = 512; in davinci_nand_init()
775 nand->ecc.bytes = 10; in davinci_nand_init()
776 nand->ecc.strength = 4; in davinci_nand_init()
777 nand->ecc.calculate = nand_davinci_4bit_calculate_ecc; in davinci_nand_init()
778 nand->ecc.correct = nand_davinci_4bit_correct_data; in davinci_nand_init()
779 nand->ecc.hwctl = nand_davinci_4bit_enable_hwecc; in davinci_nand_init()
780 nand->ecc.layout = &nand_davinci_4bit_layout_oobfirst; in davinci_nand_init()