Lines Matching full:oob
544 * the randomizer engine does internally before de/scrambling OOB data.
715 static void sunxi_nfc_hw_ecc_get_prot_oob_bytes(struct nand_chip *nand, u8 *oob, in sunxi_nfc_hw_ecc_get_prot_oob_bytes() argument
721 oob); in sunxi_nfc_hw_ecc_get_prot_oob_bytes()
725 sunxi_nfc_randomize_bbm(nand, page, oob); in sunxi_nfc_hw_ecc_get_prot_oob_bytes()
729 const u8 *oob, int step, in sunxi_nfc_hw_ecc_set_prot_oob_bytes() argument
737 memcpy(user_data, oob, sizeof(user_data)); in sunxi_nfc_hw_ecc_set_prot_oob_bytes()
739 oob = user_data; in sunxi_nfc_hw_ecc_set_prot_oob_bytes()
742 writel(sunxi_nfc_buf_to_user_data(oob), in sunxi_nfc_hw_ecc_set_prot_oob_bytes()
759 static int sunxi_nfc_hw_ecc_correct(struct nand_chip *nand, u8 *data, u8 *oob, in sunxi_nfc_hw_ecc_correct() argument
784 if (oob) in sunxi_nfc_hw_ecc_correct()
785 memset(oob, pattern, ecc->bytes + 4); in sunxi_nfc_hw_ecc_correct()
797 u8 *oob, int oob_off, in sunxi_nfc_hw_ecc_read_chunk() argument
831 ret = sunxi_nfc_hw_ecc_correct(nand, data, oob_required ? oob : NULL, 0, in sunxi_nfc_hw_ecc_read_chunk()
849 nand_change_read_column_op(nand, oob_off, oob, ecc->bytes + 4, in sunxi_nfc_hw_ecc_read_chunk()
853 oob, ecc->bytes + 4, in sunxi_nfc_hw_ecc_read_chunk()
863 sunxi_nfc_randomizer_read_buf(nand, oob, ecc->bytes + 4, in sunxi_nfc_hw_ecc_read_chunk()
866 sunxi_nfc_hw_ecc_get_prot_oob_bytes(nand, oob, 0, in sunxi_nfc_hw_ecc_read_chunk()
877 u8 *oob, int *cur_off, in sunxi_nfc_hw_ecc_read_extra_oob() argument
893 sunxi_nfc_read_buf(nand, oob + offset, len); in sunxi_nfc_hw_ecc_read_extra_oob()
895 sunxi_nfc_randomizer_read_buf(nand, oob + offset, len, in sunxi_nfc_hw_ecc_read_extra_oob()
959 u8 *oob = nand->oob_poi + oob_off; in sunxi_nfc_hw_ecc_read_chunks_dma() local
963 oob_required ? oob : NULL, in sunxi_nfc_hw_ecc_read_chunks_dma()
971 /* TODO: use DMA to retrieve OOB */ in sunxi_nfc_hw_ecc_read_chunks_dma()
974 oob, ecc->bytes + 4, false); in sunxi_nfc_hw_ecc_read_chunks_dma()
976 sunxi_nfc_hw_ecc_get_prot_oob_bytes(nand, oob, i, in sunxi_nfc_hw_ecc_read_chunks_dma()
991 u8 *oob = nand->oob_poi + oob_off; in sunxi_nfc_hw_ecc_read_chunks_dma() local
1006 /* TODO: use DMA to retrieve OOB */ in sunxi_nfc_hw_ecc_read_chunks_dma()
1009 oob, ecc->bytes + 4, false); in sunxi_nfc_hw_ecc_read_chunks_dma()
1012 oob, ecc->bytes + 4, in sunxi_nfc_hw_ecc_read_chunks_dma()
1032 const u8 *oob, int oob_off, in sunxi_nfc_hw_ecc_write_chunk() argument
1053 sunxi_nfc_hw_ecc_set_prot_oob_bytes(nand, oob, 0, bbm, page); in sunxi_nfc_hw_ecc_write_chunk()
1070 u8 *oob, int *cur_off, in sunxi_nfc_hw_ecc_write_extra_oob() argument
1085 sunxi_nfc_randomizer_write_buf(nand, oob + offset, len, false, page); in sunxi_nfc_hw_ecc_write_extra_oob()
1110 u8 *oob = nand->oob_poi + oob_off; in sunxi_nfc_hw_ecc_read_page() local
1112 ret = sunxi_nfc_hw_ecc_read_chunk(nand, data, data_off, oob, in sunxi_nfc_hw_ecc_read_page()
1169 u8 *oob = nand->oob_poi + oob_off; in sunxi_nfc_hw_ecc_read_subpage() local
1172 oob, in sunxi_nfc_hw_ecc_read_subpage()
1223 const u8 *oob = nand->oob_poi + oob_off; in sunxi_nfc_hw_ecc_write_page() local
1225 ret = sunxi_nfc_hw_ecc_write_chunk(nand, data, data_off, oob, in sunxi_nfc_hw_ecc_write_page()
1261 const u8 *oob = nand->oob_poi + oob_off; in sunxi_nfc_hw_ecc_write_subpage() local
1263 ret = sunxi_nfc_hw_ecc_write_chunk(nand, data, data_off, oob, in sunxi_nfc_hw_ecc_write_subpage()
1298 const u8 *oob = nand->oob_poi + (i * (ecc->bytes + 4)); in sunxi_nfc_hw_ecc_write_page_dma() local
1300 sunxi_nfc_hw_ecc_set_prot_oob_bytes(nand, oob, i, !i, page); in sunxi_nfc_hw_ecc_write_page_dma()
1336 /* TODO: use DMA to transfer extra OOB bytes ? */ in sunxi_nfc_hw_ecc_write_page_dma()
1364 /* Send command to program the OOB data */ in sunxi_nfc_hw_ecc_write_oob()
1596 * The controller does not provide access to OOB bytes in sunxi_nand_ooblayout_free()