/kernel/linux/linux-5.10/drivers/mtd/nand/raw/ |
H A D | nand_bch.c | 97 * Initialize NAND BCH error correction. Parameters @eccsize and @eccbytes 100 * required to store m*t bits, where m is such that 2^m-1 > @eccsize*8. 103 * @eccsize = 512 (thus, m=13 is the smallest integer such that 2^m-1 > 512*8) 112 unsigned int eccsize = nand->ecc.size; in nand_bch_init() local 117 eccbytes = DIV_ROUND_UP(eccstrength * fls(8 * eccsize), 8); in nand_bch_init() 121 if (!eccsize || !eccbytes) { in nand_bch_init() 126 m = fls(1+8*eccsize); in nand_bch_init() 144 eccsteps = mtd->writesize/eccsize; in nand_bch_init() 153 if (8*(eccsize+eccbytes) >= (1 << m)) { in nand_bch_init() 154 pr_warn("eccsize in nand_bch_init() [all...] |
H A D | mxc_nand.c | 158 int eccsize; member 177 int eccsize; member 797 ecc_bit_mask = (host->eccsize == 4) ? 0x7 : 0xf; in mxc_nand_read_page_v2_v3() 798 err_limit = (host->eccsize == 4) ? 0x4 : 0x8; in mxc_nand_read_page_v2_v3() 1127 host->eccsize = 1; in preset_v1() 1234 host->eccsize = get_eccsize(mtd); in preset_v2() 1235 if (host->eccsize == 4) in preset_v2() 1240 host->eccsize = 1; in preset_v2() 1313 host->eccsize = get_eccsize(mtd); in preset_v3() 1314 if (host->eccsize in preset_v3() [all...] |
H A D | stm32_fmc2_nand.c | 613 static int stm32_fmc2_nfc_bch_decode(int eccsize, u8 *dat, u32 *ecc_sta) in stm32_fmc2_nfc_bch_decode() argument 643 if (pos[i] < eccsize * 8) { in stm32_fmc2_nfc_bch_decode() 677 int ret, i, s, stat, eccsize = chip->ecc.size; in stm32_fmc2_nfc_read_page() local 691 s++, i += eccbytes, p += eccsize) { in stm32_fmc2_nfc_read_page() 695 ret = nand_change_read_column_op(chip, s * eccsize, p, in stm32_fmc2_nfc_read_page() 696 eccsize, false); in stm32_fmc2_nfc_read_page() 710 stat = nand_check_erased_ecc_chunk(p, eccsize, in stm32_fmc2_nfc_read_page() 842 int eccsize = chip->ecc.size; in stm32_fmc2_nfc_xfer() local 855 sg_set_buf(sg, p, eccsize); in stm32_fmc2_nfc_xfer() 856 p += eccsize; in stm32_fmc2_nfc_xfer() 1029 int i, s, eccsize = chip->ecc.size; stm32_fmc2_nfc_seq_correct() local [all...] |
H A D | nand_base.c | 2671 int eccsize = chip->ecc.size; in nand_read_page_raw_syndrome() local 2681 ret = nand_read_data_op(chip, buf, eccsize, false, false); in nand_read_page_raw_syndrome() 2685 buf += eccsize; in nand_read_page_raw_syndrome() 2733 int i, eccsize = chip->ecc.size, ret; in nand_read_page_swecc() local 2743 for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) in nand_read_page_swecc() 2754 for (i = 0 ; eccsteps; eccsteps--, i += eccbytes, p += eccsize) { in nand_read_page_swecc() 2892 int i, eccsize = chip->ecc.size, ret; in nand_read_page_hwecc() local 2904 for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) { in nand_read_page_hwecc() 2907 ret = nand_read_data_op(chip, p, eccsize, false, false); in nand_read_page_hwecc() 2927 for (i = 0 ; eccsteps; eccsteps--, i += eccbytes, p += eccsize) { in nand_read_page_hwecc() 2964 int ret, i, eccsize = chip->ecc.size; nand_read_page_syndrome() local 3309 int eccsize = chip->ecc.size; nand_read_oob_syndrome() local 3376 int eccsize = chip->ecc.size, length = mtd->oobsize; nand_write_oob_syndrome() local 3644 int eccsize = chip->ecc.size; nand_write_page_raw_syndrome() local 3705 int i, eccsize = chip->ecc.size, ret; nand_write_page_swecc() local 3734 int i, eccsize = chip->ecc.size, ret; nand_write_page_hwecc() local 3851 int i, eccsize = chip->ecc.size; nand_write_page_syndrome() local [all...] |
H A D | nand_ecc.c | 119 * @eccsize: data bytes per ECC step (256 or 512) 123 void __nand_calculate_ecc(const unsigned char *buf, unsigned int eccsize, in __nand_calculate_ecc() argument 129 const uint32_t eccsize_mult = eccsize >> 8; in __nand_calculate_ecc() 385 * @eccsize: data bytes per ECC step (256 or 512) 388 * Detect and correct a 1 bit error for eccsize byte block 392 unsigned int eccsize, bool sm_order) in __nand_correct_data() 397 const uint32_t eccsize_mult = eccsize >> 8; in __nand_correct_data() 390 __nand_correct_data(unsigned char *buf, unsigned char *read_ecc, unsigned char *calc_ecc, unsigned int eccsize, bool sm_order) __nand_correct_data() argument
|
H A D | txx9ndfmc.c | 192 int eccsize; in txx9ndfmc_correct_data() local 196 for (eccsize = chip->ecc.size; eccsize > 0; eccsize -= 256) { in txx9ndfmc_correct_data()
|
H A D | davinci_nand.c | 390 int i, eccsize = chip->ecc.size, ret; in nand_davinci_read_page_hwecc_oob_first() local 412 for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) { in nand_davinci_read_page_hwecc_oob_first() 417 ret = nand_read_data_op(chip, p, eccsize, false, false); in nand_davinci_read_page_hwecc_oob_first() 425 stat = nand_check_erased_ecc_chunk(p, eccsize, in nand_davinci_read_page_hwecc_oob_first()
|
H A D | fsmc_nand.c | 698 int i, j, s, stat, eccsize = chip->ecc.size; in fsmc_read_page_hwecc() local 714 for (i = 0, s = 0; s < eccsteps; s++, i += eccbytes, p += eccsize) { in fsmc_read_page_hwecc() 715 nand_read_page_op(chip, page, s * eccsize, NULL, 0); in fsmc_read_page_hwecc() 717 ret = nand_read_data_op(chip, p, eccsize, false, false); in fsmc_read_page_hwecc()
|
/kernel/linux/linux-6.6/drivers/mtd/nand/ |
H A D | ecc-sw-bch.c | 111 unsigned int eccsize = nand->ecc.ctx.conf.step_size; in nand_ecc_sw_bch_init() local 117 m = fls(1 + (8 * eccsize)); in nand_ecc_sw_bch_init() 133 erased_page = kmalloc(eccsize, GFP_KERNEL); in nand_ecc_sw_bch_init() 139 memset(erased_page, 0xff, eccsize); in nand_ecc_sw_bch_init() 140 bch_encode(engine_conf->bch, erased_page, eccsize, in nand_ecc_sw_bch_init() 156 if (8 * (eccsize + eccbytes) >= (1 << m)) { in nand_ecc_sw_bch_init() 157 pr_err("ECC step size is too large (%u)\n", eccsize); in nand_ecc_sw_bch_init() 296 int eccsize = nand->ecc.ctx.conf.step_size; in nand_ecc_sw_bch_prepare_io_req() local 321 eccsteps--, i += eccbytes, data += eccsize) in nand_ecc_sw_bch_prepare_io_req() 333 int eccsize in nand_ecc_sw_bch_finish_io_req() local [all...] |
H A D | ecc-sw-hamming.c | 550 int eccsize = nand->ecc.ctx.conf.step_size; in nand_ecc_sw_hamming_prepare_io_req() local 575 eccsteps--, i += eccbytes, data += eccsize) in nand_ecc_sw_hamming_prepare_io_req() 587 int eccsize = nand->ecc.ctx.conf.step_size; in nand_ecc_sw_hamming_finish_io_req() local 618 for (i = 0; eccsteps; eccsteps--, i += eccbytes, data += eccsize) in nand_ecc_sw_hamming_finish_io_req() 624 eccsteps--, i += eccbytes, data += eccsize) { in nand_ecc_sw_hamming_finish_io_req()
|
/kernel/linux/linux-5.10/include/linux/mtd/ |
H A D | nand_ecc.h | 16 * Calculate 3 byte ECC code for eccsize byte block 18 void __nand_calculate_ecc(const u_char *dat, unsigned int eccsize, 28 * Detect and correct a 1 bit error for eccsize byte block 31 unsigned int eccsize, bool sm_order);
|
/kernel/linux/linux-6.6/drivers/mtd/nand/raw/ |
H A D | mxc_nand.c | 156 int eccsize; member 175 int eccsize; member 794 ecc_bit_mask = (host->eccsize == 4) ? 0x7 : 0xf; in mxc_nand_read_page_v2_v3() 795 err_limit = (host->eccsize == 4) ? 0x4 : 0x8; in mxc_nand_read_page_v2_v3() 1124 host->eccsize = 1; in preset_v1() 1231 host->eccsize = get_eccsize(mtd); in preset_v2() 1232 if (host->eccsize == 4) in preset_v2() 1237 host->eccsize = 1; in preset_v2() 1310 host->eccsize = get_eccsize(mtd); in preset_v3() 1311 if (host->eccsize in preset_v3() [all...] |
H A D | nand_base.c | 2990 int eccsize = chip->ecc.size; in nand_read_page_raw_syndrome() local 3000 ret = nand_read_data_op(chip, buf, eccsize, false, false); in nand_read_page_raw_syndrome() 3004 buf += eccsize; in nand_read_page_raw_syndrome() 3052 int i, eccsize = chip->ecc.size, ret; in nand_read_page_swecc() local 3062 for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) in nand_read_page_swecc() 3073 for (i = 0 ; eccsteps; eccsteps--, i += eccbytes, p += eccsize) { in nand_read_page_swecc() 3211 int i, eccsize = chip->ecc.size, ret; in nand_read_page_hwecc() local 3223 for (i = 0; eccsteps; eccsteps--, i += eccbytes, p += eccsize) { in nand_read_page_hwecc() 3226 ret = nand_read_data_op(chip, p, eccsize, false, false); in nand_read_page_hwecc() 3246 for (i = 0 ; eccsteps; eccsteps--, i += eccbytes, p += eccsize) { in nand_read_page_hwecc() 3284 int i, eccsize = chip->ecc.size, ret; nand_read_page_hwecc_oob_first() local 3350 int ret, i, eccsize = chip->ecc.size; nand_read_page_syndrome() local 3745 int eccsize = chip->ecc.size; nand_read_oob_syndrome() local 3812 int eccsize = chip->ecc.size, length = mtd->oobsize; nand_write_oob_syndrome() local 4094 int eccsize = chip->ecc.size; nand_write_page_raw_syndrome() local 4155 int i, eccsize = chip->ecc.size, ret; nand_write_page_swecc() local 4184 int i, eccsize = chip->ecc.size, ret; nand_write_page_hwecc() local 4301 int i, eccsize = chip->ecc.size; nand_write_page_syndrome() local [all...] |
H A D | stm32_fmc2_nand.c | 617 static int stm32_fmc2_nfc_bch_decode(int eccsize, u8 *dat, u32 *ecc_sta) in stm32_fmc2_nfc_bch_decode() argument 647 if (pos[i] < eccsize * 8) { in stm32_fmc2_nfc_bch_decode() 681 int ret, i, s, stat, eccsize = chip->ecc.size; in stm32_fmc2_nfc_read_page() local 695 s++, i += eccbytes, p += eccsize) { in stm32_fmc2_nfc_read_page() 699 ret = nand_change_read_column_op(chip, s * eccsize, p, in stm32_fmc2_nfc_read_page() 700 eccsize, false); in stm32_fmc2_nfc_read_page() 714 stat = nand_check_erased_ecc_chunk(p, eccsize, in stm32_fmc2_nfc_read_page() 846 int eccsize = chip->ecc.size; in stm32_fmc2_nfc_xfer() local 859 sg_set_buf(sg, p, eccsize); in stm32_fmc2_nfc_xfer() 860 p += eccsize; in stm32_fmc2_nfc_xfer() 1035 int i, s, eccsize = chip->ecc.size; stm32_fmc2_nfc_seq_correct() local [all...] |
H A D | txx9ndfmc.c | 191 int eccsize; in txx9ndfmc_correct_data() local 195 for (eccsize = chip->ecc.size; eccsize > 0; eccsize -= 256) { in txx9ndfmc_correct_data()
|
H A D | fsmc_nand.c | 709 int i, j, s, stat, eccsize = chip->ecc.size; in fsmc_read_page_hwecc() local 725 for (i = 0, s = 0; s < eccsteps; s++, i += eccbytes, p += eccsize) { in fsmc_read_page_hwecc() 726 nand_read_page_op(chip, page, s * eccsize, NULL, 0); in fsmc_read_page_hwecc() 728 ret = nand_read_data_op(chip, p, eccsize, false, false); in fsmc_read_page_hwecc()
|
/kernel/linux/linux-5.10/drivers/mtd/nand/raw/gpmi-nand/ |
H A D | gpmi-nand.c | 1594 int eccsize = nfc_geo->ecc_chunk_size; in gpmi_ecc_read_page_raw() local 1632 nand_extract_bits(buf, step * eccsize * 8, tmp_buf, in gpmi_ecc_read_page_raw() 1633 src_bit_off, eccsize * 8); in gpmi_ecc_read_page_raw() 1634 src_bit_off += eccsize * 8; in gpmi_ecc_read_page_raw() 1679 int eccsize = nfc_geo->ecc_chunk_size; in gpmi_ecc_write_page_raw() local 1708 step * eccsize * 8, eccsize * 8); in gpmi_ecc_write_page_raw() 1709 dst_bit_off += eccsize * 8; in gpmi_ecc_write_page_raw()
|
/kernel/linux/linux-6.6/drivers/mtd/nand/raw/gpmi-nand/ |
H A D | gpmi-nand.c | 1816 int eccsize = nfc_geo->eccn_chunk_size; in gpmi_ecc_read_page_raw() local 1854 nand_extract_bits(buf, step * eccsize * 8, tmp_buf, in gpmi_ecc_read_page_raw() 1855 src_bit_off, eccsize * 8); in gpmi_ecc_read_page_raw() 1856 src_bit_off += eccsize * 8; in gpmi_ecc_read_page_raw() 1901 int eccsize = nfc_geo->eccn_chunk_size; in gpmi_ecc_write_page_raw() local 1930 step * eccsize * 8, eccsize * 8); in gpmi_ecc_write_page_raw() 1931 dst_bit_off += eccsize * 8; in gpmi_ecc_write_page_raw()
|