Lines Matching refs:ecc

168 	u_int32_t	ecc = 0;  in nand_davinci_readecc()  local
170 ecc = __raw_readl(&(davinci_emif_regs->nandfecc[ in nand_davinci_readecc()
173 return ecc; in nand_davinci_readecc()
236 if ((diff >> (12 + 3)) < this->ecc.size) { in nand_davinci_correct_data()
374 saved_ecc_layout = chip->ecc.layout; in nand_davinci_write_page()
375 chip->ecc.layout = &nand_keystone_rbl_4bit_layout_oobfirst; in nand_davinci_write_page()
376 mtd->oobavail = chip->ecc.layout->oobavail; in nand_davinci_write_page()
382 status = chip->ecc.write_page_raw(mtd, chip, buf, in nand_davinci_write_page()
385 status = chip->ecc.write_page(mtd, chip, buf, in nand_davinci_write_page()
405 chip->ecc.layout = saved_ecc_layout; in nand_davinci_write_page()
425 int i, eccsize = chip->ecc.size; in nand_davinci_read_page_hwecc()
426 int eccbytes = chip->ecc.bytes; in nand_davinci_read_page_hwecc()
427 int eccsteps = chip->ecc.steps; in nand_davinci_read_page_hwecc()
432 struct nand_ecclayout *saved_ecc_layout = chip->ecc.layout; in nand_davinci_read_page_hwecc()
436 chip->ecc.layout = &nand_keystone_rbl_4bit_layout_oobfirst; in nand_davinci_read_page_hwecc()
437 mtd->oobavail = chip->ecc.layout->oobavail; in nand_davinci_read_page_hwecc()
440 eccpos = chip->ecc.layout->eccpos; in nand_davinci_read_page_hwecc()
447 for (i = 0; i < chip->ecc.total; i++) in nand_davinci_read_page_hwecc()
453 chip->ecc.hwctl(mtd, NAND_ECC_READ); in nand_davinci_read_page_hwecc()
455 chip->ecc.calculate(mtd, p, &ecc_calc[i]); in nand_davinci_read_page_hwecc()
457 stat = chip->ecc.correct(mtd, p, &ecc_code[i], NULL); in nand_davinci_read_page_hwecc()
466 chip->ecc.layout = saved_ecc_layout; in nand_davinci_read_page_hwecc()
500 static u32 nand_davinci_4bit_readecc(struct mtd_info *mtd, unsigned int ecc[4]) in nand_davinci_4bit_readecc()
505 ecc[i] = __raw_readl(&davinci_emif_regs->nand4bitecc[i]) & in nand_davinci_4bit_readecc()
747 nand->ecc.read_page = nand_davinci_read_page_hwecc; in davinci_nand_init()
760 nand->ecc.mode = NAND_ECC_HW; in davinci_nand_init()
761 nand->ecc.size = 512; in davinci_nand_init()
762 nand->ecc.bytes = 3; in davinci_nand_init()
763 nand->ecc.strength = 1; in davinci_nand_init()
764 nand->ecc.calculate = nand_davinci_calculate_ecc; in davinci_nand_init()
765 nand->ecc.correct = nand_davinci_correct_data; in davinci_nand_init()
766 nand->ecc.hwctl = nand_davinci_enable_hwecc; in davinci_nand_init()
768 nand->ecc.mode = NAND_ECC_SOFT; in davinci_nand_init()
771 nand->ecc.mode = NAND_ECC_HW_OOB_FIRST; in davinci_nand_init()
772 nand->ecc.size = 512; in davinci_nand_init()
773 nand->ecc.bytes = 10; in davinci_nand_init()
774 nand->ecc.strength = 4; in davinci_nand_init()
775 nand->ecc.calculate = nand_davinci_4bit_calculate_ecc; in davinci_nand_init()
776 nand->ecc.correct = nand_davinci_4bit_correct_data; in davinci_nand_init()
777 nand->ecc.hwctl = nand_davinci_4bit_enable_hwecc; in davinci_nand_init()
778 nand->ecc.layout = &nand_davinci_4bit_layout_oobfirst; in davinci_nand_init()