Home
last modified time | relevance | path

Searched refs:eccsize (Results 1 - 18 of 18) sorted by relevance

/kernel/linux/linux-5.10/drivers/mtd/nand/raw/
H A Dnand_bch.c97 * 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 Dmxc_nand.c158 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 Dstm32_fmc2_nand.c613 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 Dnand_base.c2671 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 Dnand_ecc.c119 * @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 Dtxx9ndfmc.c192 int eccsize; in txx9ndfmc_correct_data() local
196 for (eccsize = chip->ecc.size; eccsize > 0; eccsize -= 256) { in txx9ndfmc_correct_data()
H A Ddavinci_nand.c390 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 Dfsmc_nand.c698 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 Decc-sw-bch.c111 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 Decc-sw-hamming.c550 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 Dnand_ecc.h16 * 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 Dmxc_nand.c156 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 Dnand_base.c2990 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 Dstm32_fmc2_nand.c617 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 Dtxx9ndfmc.c191 int eccsize; in txx9ndfmc_correct_data() local
195 for (eccsize = chip->ecc.size; eccsize > 0; eccsize -= 256) { in txx9ndfmc_correct_data()
H A Dfsmc_nand.c709 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 Dgpmi-nand.c1594 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 Dgpmi-nand.c1816 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()

Completed in 40 milliseconds