Lines Matching refs:ecc
255 static void nand_compute_ecc(unsigned char *data, unsigned char *ecc) in nand_compute_ecc() argument
271 ecc[0] = ~(a ^ (a<<1) ^ (parity[par] ? 0xaa : 0)); in nand_compute_ecc()
274 ecc[1] = ~(a ^ (a<<1) ^ (parity[par] ? 0xaa : 0)); in nand_compute_ecc()
276 ecc[2] = ecc2[par]; in nand_compute_ecc()
279 static int nand_compare_ecc(unsigned char *data, unsigned char *ecc) in nand_compare_ecc() argument
281 return (data[0] == ecc[0] && data[1] == ecc[1] && data[2] == ecc[2]); in nand_compare_ecc()
284 static void nand_store_ecc(unsigned char *data, unsigned char *ecc) in nand_store_ecc() argument
286 memcpy(data, ecc, 3); in nand_store_ecc()
818 unsigned char ecc[3]; in alauda_write_lba() local
864 nand_compute_ecc(bptr, ecc); in alauda_write_lba()
865 if (!nand_compare_ecc(cptr+13, ecc)) { in alauda_write_lba()
868 nand_store_ecc(cptr+13, ecc); in alauda_write_lba()
870 nand_compute_ecc(bptr + (pagesize / 2), ecc); in alauda_write_lba()
871 if (!nand_compare_ecc(cptr+8, ecc)) { in alauda_write_lba()
874 nand_store_ecc(cptr+8, ecc); in alauda_write_lba()
887 nand_compute_ecc(bptr, ecc); in alauda_write_lba()
888 nand_store_ecc(cptr+13, ecc); in alauda_write_lba()
889 nand_compute_ecc(bptr + (pagesize / 2), ecc); in alauda_write_lba()
890 nand_store_ecc(cptr+8, ecc); in alauda_write_lba()