Home
last modified time | relevance | path

Searched refs:ecc (Results 1 - 25 of 271) sorted by relevance

1234567891011

/kernel/linux/linux-5.10/drivers/mtd/nand/raw/
H A Dmtk_ecc.c68 /* ecc strength that each IP supports */
119 static inline void mtk_ecc_wait_idle(struct mtk_ecc *ecc, in mtk_ecc_wait_idle() argument
122 struct device *dev = ecc->dev; in mtk_ecc_wait_idle()
126 ret = readl_poll_timeout_atomic(ecc->regs + ECC_IDLE_REG(op), val, in mtk_ecc_wait_idle()
136 struct mtk_ecc *ecc = id; in mtk_ecc_irq() local
139 dec = readw(ecc->regs + ecc->caps->ecc_regs[ECC_DECIRQ_STA]) in mtk_ecc_irq()
142 dec = readw(ecc->regs + ecc->caps->ecc_regs[ECC_DECDONE]); in mtk_ecc_irq()
143 if (dec & ecc in mtk_ecc_irq()
166 mtk_ecc_config(struct mtk_ecc *ecc, struct mtk_ecc_config *config) mtk_ecc_config() argument
213 mtk_ecc_get_stats(struct mtk_ecc *ecc, struct mtk_ecc_stats *stats, int sectors) mtk_ecc_get_stats() argument
241 mtk_ecc_release(struct mtk_ecc *ecc) mtk_ecc_release() argument
248 mtk_ecc_hw_init(struct mtk_ecc *ecc) mtk_ecc_hw_init() argument
260 struct mtk_ecc *ecc; mtk_ecc_get() local
280 struct mtk_ecc *ecc = NULL; of_mtk_ecc_get() local
293 mtk_ecc_enable(struct mtk_ecc *ecc, struct mtk_ecc_config *config) mtk_ecc_enable() argument
337 mtk_ecc_disable(struct mtk_ecc *ecc) mtk_ecc_disable() argument
364 mtk_ecc_wait_done(struct mtk_ecc *ecc, enum mtk_ecc_operation op) mtk_ecc_wait_done() argument
379 mtk_ecc_encode(struct mtk_ecc *ecc, struct mtk_ecc_config *config, u8 *data, u32 bytes) mtk_ecc_encode() argument
426 mtk_ecc_adjust_strength(struct mtk_ecc *ecc, u32 *p) mtk_ecc_adjust_strength() argument
445 mtk_ecc_get_parity_bits(struct mtk_ecc *ecc) mtk_ecc_get_parity_bits() argument
501 struct mtk_ecc *ecc; mtk_ecc_probe() local
560 struct mtk_ecc *ecc = dev_get_drvdata(dev); mtk_ecc_suspend() local
569 struct mtk_ecc *ecc = dev_get_drvdata(dev); mtk_ecc_resume() local
[all...]
H A Dnand_micron.c66 struct micron_on_die_ecc ecc; member
127 .ecc = micron_nand_on_die_4_ooblayout_ecc,
140 oobregion->offset = mtd->oobsize - chip->ecc.total; in micron_nand_on_die_8_ooblayout_ecc()
141 oobregion->length = chip->ecc.total; in micron_nand_on_die_8_ooblayout_ecc()
156 oobregion->length = mtd->oobsize - chip->ecc.total - 2; in micron_nand_on_die_8_ooblayout_free()
162 .ecc = micron_nand_on_die_8_ooblayout_ecc,
172 if (micron->ecc.forced) in micron_nand_on_die_ecc_setup()
175 if (micron->ecc.enabled == enable) in micron_nand_on_die_ecc_setup()
183 micron->ecc.enabled = enable; in micron_nand_on_die_ecc_setup()
242 ret = nand_read_page_op(chip, page, 0, micron->ecc in micron_nand_on_die_ecc_status_4()
[all...]
H A Domap2.c122 /* GPMC ecc engine settings for read */
129 /* GPMC ecc engine settings for write */
719 * @ecc_buf: buffer to store ecc code
739 * @ecc_data1: ecc code from nand spare area
740 * @ecc_data2: ecc code from hardware register obtained from hardware ecc
869 * @read_ecc: ecc read from nand flash
870 * @calc_ecc: ecc read from HW ECC registers
872 * Compares the ecc read from nand spare area with ECC registers values
887 if (info->nand.ecc in omap_correct_data()
1356 struct nand_ecc_ctrl *ecc = &info->nand.ecc; omap_elm_correct_data() local
[all...]
H A Dnand_base.c262 res = chip->ecc.read_oob(chip, first_page + page_offset); in nand_block_bad()
433 status = chip->ecc.write_oob_raw(chip, page & chip->pagemask); in nand_do_write_oob()
435 status = chip->ecc.write_oob(chip, page & chip->pagemask); in nand_do_write_oob()
2500 * @ecc: ECC buffer
2535 void *ecc, int ecclen, in nand_check_erased_ecc_chunk()
2548 ecc_bitflips = nand_check_erased_buf(ecc, ecclen, bitflips_threshold); in nand_check_erased_ecc_chunk()
2563 memset(ecc, 0xff, ecclen); in nand_check_erased_ecc_chunk()
2588 * nand_read_page_raw - [INTERN] read raw page data without ecc
2659 * nand_read_page_raw_syndrome - [INTERN] read raw page data without ecc
2671 int eccsize = chip->ecc in nand_read_page_raw_syndrome()
2534 nand_check_erased_ecc_chunk(void *data, int datalen, void *ecc, int ecclen, void *extraoob, int extraooblen, int bitflips_threshold) nand_check_erased_ecc_chunk() argument
5140 struct nand_ecc_ctrl *ecc = &chip->ecc; nand_set_ecc_on_host_ops() local
5201 struct nand_ecc_ctrl *ecc = &chip->ecc; nand_set_ecc_soft_ops() local
5605 struct nand_ecc_ctrl *ecc = &chip->ecc; nand_scan_tail() local
[all...]
H A Dnand_bch.c23 * @eccmask: XOR ecc mask, allows erased pages to be decoded as valid
40 struct nand_bch_control *nbc = chip->ecc.priv; in nand_bch_calculate_ecc()
43 memset(code, 0, chip->ecc.bytes); in nand_bch_calculate_ecc()
44 bch_encode(nbc->bch, buf, chip->ecc.size, code); in nand_bch_calculate_ecc()
47 for (i = 0; i < chip->ecc.bytes; i++) in nand_bch_calculate_ecc()
66 struct nand_bch_control *nbc = chip->ecc.priv; in nand_bch_correct_data()
70 count = bch_decode(nbc->bch, NULL, chip->ecc.size, read_ecc, calc_ecc, in nand_bch_correct_data()
74 if (errloc[i] < (chip->ecc.size*8)) in nand_bch_correct_data()
77 /* else error in ecc, no action needed */ in nand_bch_correct_data()
83 pr_err("ecc unrecoverabl in nand_bch_correct_data()
[all...]
H A Dsunxi_nand.c593 bool ecc) in sunxi_nfc_randomizer_state()
602 if (ecc) { in sunxi_nfc_randomizer_state()
613 bool ecc) in sunxi_nfc_randomizer_config()
623 state = sunxi_nfc_randomizer_state(nand, page, ecc); in sunxi_nfc_randomizer_config()
660 bool ecc, int page) in sunxi_nfc_randomizer_write_buf()
662 sunxi_nfc_randomizer_config(nand, page, ecc); in sunxi_nfc_randomizer_write_buf()
669 int len, bool ecc, int page) in sunxi_nfc_randomizer_read_buf()
671 sunxi_nfc_randomizer_config(nand, page, ecc); in sunxi_nfc_randomizer_read_buf()
680 struct sunxi_nand_hw_ecc *data = nand->ecc.priv; in sunxi_nfc_hw_ecc_enable()
689 if (nand->ecc in sunxi_nfc_hw_ecc_enable()
592 sunxi_nfc_randomizer_state(struct nand_chip *nand, int page, bool ecc) sunxi_nfc_randomizer_state() argument
612 sunxi_nfc_randomizer_config(struct nand_chip *nand, int page, bool ecc) sunxi_nfc_randomizer_config() argument
658 sunxi_nfc_randomizer_write_buf(struct nand_chip *nand, const uint8_t *buf, int len, bool ecc, int page) sunxi_nfc_randomizer_write_buf() argument
668 sunxi_nfc_randomizer_read_buf(struct nand_chip *nand, uint8_t *buf, int len, bool ecc, int page) sunxi_nfc_randomizer_read_buf() argument
764 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nfc_hw_ecc_correct() local
804 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nfc_hw_ecc_read_chunk() local
882 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nfc_hw_ecc_read_extra_oob() local
910 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nfc_hw_ecc_read_chunks_dma() local
1033 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nfc_hw_ecc_write_chunk() local
1070 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nfc_hw_ecc_write_extra_oob() local
1091 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nfc_hw_ecc_read_page() local
1150 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nfc_hw_ecc_read_subpage() local
1206 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nfc_hw_ecc_write_page() local
1243 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nfc_hw_ecc_write_subpage() local
1277 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nfc_hw_ecc_write_page_dma() local
1553 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nand_ooblayout_ecc() local
1568 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nand_ooblayout_free() local
1600 sunxi_nand_hw_ecc_ctrl_cleanup(struct nand_ecc_ctrl *ecc) sunxi_nand_hw_ecc_ctrl_cleanup() argument
1605 sunxi_nand_hw_ecc_ctrl_init(struct nand_chip *nand, struct nand_ecc_ctrl *ecc, struct device_node *np) sunxi_nand_hw_ecc_ctrl_init() argument
1722 sunxi_nand_ecc_cleanup(struct nand_ecc_ctrl *ecc) sunxi_nand_ecc_cleanup() argument
1738 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nand_attach_chip() local
[all...]
/kernel/linux/linux-6.6/drivers/mtd/nand/
H A Decc-mtk.c18 #include <linux/mtd/nand-ecc-mtk.h>
71 /* ecc strength that each IP supports */
126 static inline void mtk_ecc_wait_idle(struct mtk_ecc *ecc, in mtk_ecc_wait_idle() argument
129 struct device *dev = ecc->dev; in mtk_ecc_wait_idle()
133 ret = readl_poll_timeout_atomic(ecc->regs + ECC_IDLE_REG(op), val, in mtk_ecc_wait_idle()
143 struct mtk_ecc *ecc = id; in mtk_ecc_irq() local
146 dec = readw(ecc->regs + ecc->caps->ecc_regs[ECC_DECIRQ_STA]) in mtk_ecc_irq()
149 dec = readw(ecc->regs + ecc in mtk_ecc_irq()
173 mtk_ecc_config(struct mtk_ecc *ecc, struct mtk_ecc_config *config) mtk_ecc_config() argument
220 mtk_ecc_get_stats(struct mtk_ecc *ecc, struct mtk_ecc_stats *stats, int sectors) mtk_ecc_get_stats() argument
248 mtk_ecc_release(struct mtk_ecc *ecc) mtk_ecc_release() argument
255 mtk_ecc_hw_init(struct mtk_ecc *ecc) mtk_ecc_hw_init() argument
267 struct mtk_ecc *ecc; mtk_ecc_get() local
287 struct mtk_ecc *ecc = NULL; of_mtk_ecc_get() local
303 mtk_ecc_enable(struct mtk_ecc *ecc, struct mtk_ecc_config *config) mtk_ecc_enable() argument
347 mtk_ecc_disable(struct mtk_ecc *ecc) mtk_ecc_disable() argument
374 mtk_ecc_wait_done(struct mtk_ecc *ecc, enum mtk_ecc_operation op) mtk_ecc_wait_done() argument
389 mtk_ecc_encode(struct mtk_ecc *ecc, struct mtk_ecc_config *config, u8 *data, u32 bytes) mtk_ecc_encode() argument
436 mtk_ecc_adjust_strength(struct mtk_ecc *ecc, u32 *p) mtk_ecc_adjust_strength() argument
455 mtk_ecc_get_parity_bits(struct mtk_ecc *ecc) mtk_ecc_get_parity_bits() argument
525 struct mtk_ecc *ecc; mtk_ecc_probe() local
580 struct mtk_ecc *ecc = dev_get_drvdata(dev); mtk_ecc_suspend() local
589 struct mtk_ecc *ecc = dev_get_drvdata(dev); mtk_ecc_resume() local
[all...]
H A Decc.c41 * - ecc: Correction enabled
56 * - external + prepare + ecc + read: do nothing
57 * - external + finish + ecc + read: calculate expected ECC bytes, extract
60 * - external + prepare + ecc + write: calculate ECC bytes and store them at
63 * - external + finish + ecc + write: do nothing
72 * - pipelined + prepare + ecc + read: enable the controller's ECC engine if
74 * - pipelined + finish + ecc + read: check the status, report any
76 * - pipelined + prepare + ecc + write: enable the controller's ECC engine if
78 * - pipelined + finish + ecc + write: do nothing
87 * - ondie + prepare + ecc
[all...]
/kernel/linux/linux-5.10/drivers/mtd/nand/raw/ingenic/
H A Dingenic_ecc.c19 * @ecc: ECC device.
27 int ingenic_ecc_calculate(struct ingenic_ecc *ecc, in ingenic_ecc_calculate() argument
31 return ecc->ops->calculate(ecc, params, buf, ecc_code); in ingenic_ecc_calculate()
36 * @ecc: ECC device.
47 int ingenic_ecc_correct(struct ingenic_ecc *ecc, in ingenic_ecc_correct() argument
51 return ecc->ops->correct(ecc, params, buf, ecc_code); in ingenic_ecc_correct()
68 struct ingenic_ecc *ecc; in ingenic_ecc_get() local
76 ecc in ingenic_ecc_get()
94 struct ingenic_ecc *ecc = NULL; of_ingenic_ecc_get() local
117 ingenic_ecc_release(struct ingenic_ecc *ecc) ingenic_ecc_release() argument
126 struct ingenic_ecc *ecc; ingenic_ecc_probe() local
[all...]
H A Dingenic_nand_drv.c44 struct ingenic_ecc *ecc; member
75 struct nand_ecc_ctrl *ecc = &chip->ecc; in qi_lb60_ooblayout_ecc() local
77 if (section || !ecc->total) in qi_lb60_ooblayout_ecc()
80 oobregion->length = ecc->total; in qi_lb60_ooblayout_ecc()
90 struct nand_ecc_ctrl *ecc = &chip->ecc; in qi_lb60_ooblayout_free() local
95 oobregion->length = mtd->oobsize - ecc->total - 12; in qi_lb60_ooblayout_free()
96 oobregion->offset = 12 + ecc->total; in qi_lb60_ooblayout_free()
102 .ecc
110 struct nand_ecc_ctrl *ecc = &chip->ecc; jz4725b_ooblayout_ecc() local
125 struct nand_ecc_ctrl *ecc = &chip->ecc; jz4725b_ooblayout_free() local
[all...]
H A Djz4740_ecc.c45 static void jz4740_ecc_reset(struct ingenic_ecc *ecc, bool calc_ecc) in jz4740_ecc_reset() argument
50 writel(0, ecc->base + JZ_REG_NAND_IRQ_STAT); in jz4740_ecc_reset()
53 reg = readl(ecc->base + JZ_REG_NAND_ECC_CTRL); in jz4740_ecc_reset()
62 writel(reg, ecc->base + JZ_REG_NAND_ECC_CTRL); in jz4740_ecc_reset()
65 static int jz4740_ecc_calculate(struct ingenic_ecc *ecc, in jz4740_ecc_calculate() argument
73 jz4740_ecc_reset(ecc, true); in jz4740_ecc_calculate()
76 status = readl(ecc->base + JZ_REG_NAND_IRQ_STAT); in jz4740_ecc_calculate()
82 reg = readl(ecc->base + JZ_REG_NAND_ECC_CTRL); in jz4740_ecc_calculate()
84 writel(reg, ecc->base + JZ_REG_NAND_ECC_CTRL); in jz4740_ecc_calculate()
87 ecc_code[i] = readb(ecc in jz4740_ecc_calculate()
117 jz4740_ecc_correct(struct ingenic_ecc *ecc, struct ingenic_ecc_params *params, u8 *buf, u8 *ecc_code) jz4740_ecc_correct() argument
164 jz4740_ecc_disable(struct ingenic_ecc *ecc) jz4740_ecc_disable() argument
[all...]
H A Dingenic_ecc.h29 int ingenic_ecc_calculate(struct ingenic_ecc *ecc,
32 int ingenic_ecc_correct(struct ingenic_ecc *ecc,
36 void ingenic_ecc_release(struct ingenic_ecc *ecc);
39 static inline int ingenic_ecc_calculate(struct ingenic_ecc *ecc, in ingenic_ecc_calculate() argument
46 static inline int ingenic_ecc_correct(struct ingenic_ecc *ecc, in ingenic_ecc_correct() argument
53 static inline void ingenic_ecc_release(struct ingenic_ecc *ecc) in ingenic_ecc_release() argument
64 void (*disable)(struct ingenic_ecc *ecc);
65 int (*calculate)(struct ingenic_ecc *ecc,
68 int (*correct)(struct ingenic_ecc *ecc,
/kernel/linux/linux-6.6/drivers/mtd/nand/raw/ingenic/
H A Dingenic_ecc.c20 * @ecc: ECC device.
28 int ingenic_ecc_calculate(struct ingenic_ecc *ecc, in ingenic_ecc_calculate() argument
32 return ecc->ops->calculate(ecc, params, buf, ecc_code); in ingenic_ecc_calculate()
37 * @ecc: ECC device.
48 int ingenic_ecc_correct(struct ingenic_ecc *ecc, in ingenic_ecc_correct() argument
52 return ecc->ops->correct(ecc, params, buf, ecc_code); in ingenic_ecc_correct()
69 struct ingenic_ecc *ecc; in ingenic_ecc_get() local
80 ecc in ingenic_ecc_get()
98 struct ingenic_ecc *ecc = NULL; of_ingenic_ecc_get() local
121 ingenic_ecc_release(struct ingenic_ecc *ecc) ingenic_ecc_release() argument
130 struct ingenic_ecc *ecc; ingenic_ecc_probe() local
[all...]
H A Dingenic_nand_drv.c44 struct ingenic_ecc *ecc; member
75 struct nand_ecc_ctrl *ecc = &chip->ecc; in qi_lb60_ooblayout_ecc() local
77 if (section || !ecc->total) in qi_lb60_ooblayout_ecc()
80 oobregion->length = ecc->total; in qi_lb60_ooblayout_ecc()
90 struct nand_ecc_ctrl *ecc = &chip->ecc; in qi_lb60_ooblayout_free() local
95 oobregion->length = mtd->oobsize - ecc->total - 12; in qi_lb60_ooblayout_free()
96 oobregion->offset = 12 + ecc->total; in qi_lb60_ooblayout_free()
102 .ecc
110 struct nand_ecc_ctrl *ecc = &chip->ecc; jz4725b_ooblayout_ecc() local
125 struct nand_ecc_ctrl *ecc = &chip->ecc; jz4725b_ooblayout_free() local
[all...]
H A Djz4740_ecc.c45 static void jz4740_ecc_reset(struct ingenic_ecc *ecc, bool calc_ecc) in jz4740_ecc_reset() argument
50 writel(0, ecc->base + JZ_REG_NAND_IRQ_STAT); in jz4740_ecc_reset()
53 reg = readl(ecc->base + JZ_REG_NAND_ECC_CTRL); in jz4740_ecc_reset()
62 writel(reg, ecc->base + JZ_REG_NAND_ECC_CTRL); in jz4740_ecc_reset()
65 static int jz4740_ecc_calculate(struct ingenic_ecc *ecc, in jz4740_ecc_calculate() argument
73 jz4740_ecc_reset(ecc, true); in jz4740_ecc_calculate()
76 status = readl(ecc->base + JZ_REG_NAND_IRQ_STAT); in jz4740_ecc_calculate()
82 reg = readl(ecc->base + JZ_REG_NAND_ECC_CTRL); in jz4740_ecc_calculate()
84 writel(reg, ecc->base + JZ_REG_NAND_ECC_CTRL); in jz4740_ecc_calculate()
87 ecc_code[i] = readb(ecc in jz4740_ecc_calculate()
117 jz4740_ecc_correct(struct ingenic_ecc *ecc, struct ingenic_ecc_params *params, u8 *buf, u8 *ecc_code) jz4740_ecc_correct() argument
164 jz4740_ecc_disable(struct ingenic_ecc *ecc) jz4740_ecc_disable() argument
[all...]
/kernel/linux/linux-5.10/drivers/dma/ti/
H A Dedma.c228 struct edma_cc *ecc; member
309 static inline unsigned int edma_read(struct edma_cc *ecc, int offset) in edma_read() argument
311 return (unsigned int)__raw_readl(ecc->base + offset); in edma_read()
314 static inline void edma_write(struct edma_cc *ecc, int offset, int val) in edma_write() argument
316 __raw_writel(val, ecc->base + offset); in edma_write()
319 static inline void edma_modify(struct edma_cc *ecc, int offset, unsigned and, in edma_modify() argument
322 unsigned val = edma_read(ecc, offset); in edma_modify()
326 edma_write(ecc, offset, val); in edma_modify()
329 static inline void edma_and(struct edma_cc *ecc, int offset, unsigned and) in edma_and() argument
331 unsigned val = edma_read(ecc, offse in edma_and()
337 edma_or(struct edma_cc *ecc, int offset, unsigned or) edma_or() argument
345 edma_read_array(struct edma_cc *ecc, int offset, int i) edma_read_array() argument
351 edma_write_array(struct edma_cc *ecc, int offset, int i, unsigned val) edma_write_array() argument
357 edma_modify_array(struct edma_cc *ecc, int offset, int i, unsigned and, unsigned or) edma_modify_array() argument
363 edma_or_array(struct edma_cc *ecc, int offset, int i, unsigned or) edma_or_array() argument
369 edma_or_array2(struct edma_cc *ecc, int offset, int i, int j, unsigned or) edma_or_array2() argument
375 edma_write_array2(struct edma_cc *ecc, int offset, int i, int j, unsigned val) edma_write_array2() argument
381 edma_shadow0_read(struct edma_cc *ecc, int offset) edma_shadow0_read() argument
386 edma_shadow0_read_array(struct edma_cc *ecc, int offset, int i) edma_shadow0_read_array() argument
392 edma_shadow0_write(struct edma_cc *ecc, int offset, unsigned val) edma_shadow0_write() argument
398 edma_shadow0_write_array(struct edma_cc *ecc, int offset, int i, unsigned val) edma_shadow0_write_array() argument
404 edma_param_read(struct edma_cc *ecc, int offset, int param_no) edma_param_read() argument
410 edma_param_write(struct edma_cc *ecc, int offset, int param_no, unsigned val) edma_param_write() argument
416 edma_param_modify(struct edma_cc *ecc, int offset, int param_no, unsigned and, unsigned or) edma_param_modify() argument
422 edma_param_and(struct edma_cc *ecc, int offset, int param_no, unsigned and) edma_param_and() argument
428 edma_param_or(struct edma_cc *ecc, int offset, int param_no, unsigned or) edma_param_or() argument
434 edma_assign_priority_to_queue(struct edma_cc *ecc, int queue_no, int priority) edma_assign_priority_to_queue() argument
444 struct edma_cc *ecc = echan->ecc; edma_set_chmap() local
455 struct edma_cc *ecc = echan->ecc; edma_setup_interrupt() local
471 edma_write_slot(struct edma_cc *ecc, unsigned slot, const struct edmacc_param *param) edma_write_slot() argument
480 edma_read_slot(struct edma_cc *ecc, unsigned slot, struct edmacc_param *param) edma_read_slot() argument
506 edma_alloc_slot(struct edma_cc *ecc, int slot) edma_alloc_slot() argument
540 edma_free_slot(struct edma_cc *ecc, unsigned slot) edma_free_slot() argument
558 edma_link(struct edma_cc *ecc, unsigned from, unsigned to) edma_link() argument
580 edma_get_position(struct edma_cc *ecc, unsigned slot, bool dst) edma_get_position() argument
600 struct edma_cc *ecc = echan->ecc; edma_start() local
627 struct edma_cc *ecc = echan->ecc; edma_stop() local
673 struct edma_cc *ecc = echan->ecc; edma_trigger_channel() local
686 struct edma_cc *ecc = echan->ecc; edma_clean_channel() local
705 struct edma_cc *ecc = echan->ecc; edma_assign_channel_eventq() local
723 struct edma_cc *ecc = echan->ecc; edma_alloc_channel() local
777 struct edma_cc *ecc = echan->ecc; edma_execute() local
1550 struct edma_cc *ecc = data; dma_irq_handler() local
1595 struct edma_cc *ecc = echan->ecc; edma_error_handler() local
1636 edma_error_pending(struct edma_cc *ecc) edma_error_pending() argument
1649 struct edma_cc *ecc = data; dma_ccerr_handler() local
1726 struct edma_cc *ecc = echan->ecc; edma_alloc_chan_resources() local
1980 edma_dma_init(struct edma_cc *ecc, bool legacy_mode) edma_dma_init() argument
2076 edma_setup_from_hw(struct device *dev, struct edma_soc_info *pdata, struct edma_cc *ecc) edma_setup_from_hw() argument
2290 struct edma_cc *ecc = ofdma->of_dma_data; of_edma_xlate() local
2350 struct edma_cc *ecc; edma_probe() local
2624 struct edma_cc *ecc = dev_get_drvdata(dev); edma_remove() local
2646 struct edma_cc *ecc = dev_get_drvdata(dev); edma_pm_suspend() local
2660 struct edma_cc *ecc = dev_get_drvdata(dev); edma_pm_resume() local
[all...]
/kernel/linux/linux-6.6/drivers/dma/ti/
H A Dedma.c219 struct edma_cc *ecc; member
300 static inline unsigned int edma_read(struct edma_cc *ecc, int offset) in edma_read() argument
302 return (unsigned int)__raw_readl(ecc->base + offset); in edma_read()
305 static inline void edma_write(struct edma_cc *ecc, int offset, int val) in edma_write() argument
307 __raw_writel(val, ecc->base + offset); in edma_write()
310 static inline void edma_modify(struct edma_cc *ecc, int offset, unsigned and, in edma_modify() argument
313 unsigned val = edma_read(ecc, offset); in edma_modify()
317 edma_write(ecc, offset, val); in edma_modify()
320 static inline void edma_or(struct edma_cc *ecc, int offset, unsigned or) in edma_or() argument
322 unsigned val = edma_read(ecc, offse in edma_or()
328 edma_read_array(struct edma_cc *ecc, int offset, int i) edma_read_array() argument
334 edma_write_array(struct edma_cc *ecc, int offset, int i, unsigned val) edma_write_array() argument
340 edma_modify_array(struct edma_cc *ecc, int offset, int i, unsigned and, unsigned or) edma_modify_array() argument
346 edma_or_array2(struct edma_cc *ecc, int offset, int i, int j, unsigned or) edma_or_array2() argument
352 edma_write_array2(struct edma_cc *ecc, int offset, int i, int j, unsigned val) edma_write_array2() argument
358 edma_shadow0_read_array(struct edma_cc *ecc, int offset, int i) edma_shadow0_read_array() argument
364 edma_shadow0_write(struct edma_cc *ecc, int offset, unsigned val) edma_shadow0_write() argument
370 edma_shadow0_write_array(struct edma_cc *ecc, int offset, int i, unsigned val) edma_shadow0_write_array() argument
376 edma_param_modify(struct edma_cc *ecc, int offset, int param_no, unsigned and, unsigned or) edma_param_modify() argument
382 edma_assign_priority_to_queue(struct edma_cc *ecc, int queue_no, int priority) edma_assign_priority_to_queue() argument
392 struct edma_cc *ecc = echan->ecc; edma_set_chmap() local
403 struct edma_cc *ecc = echan->ecc; edma_setup_interrupt() local
419 edma_write_slot(struct edma_cc *ecc, unsigned slot, const struct edmacc_param *param) edma_write_slot() argument
428 edma_read_slot(struct edma_cc *ecc, unsigned slot, struct edmacc_param *param) edma_read_slot() argument
454 edma_alloc_slot(struct edma_cc *ecc, int slot) edma_alloc_slot() argument
488 edma_free_slot(struct edma_cc *ecc, unsigned slot) edma_free_slot() argument
506 edma_link(struct edma_cc *ecc, unsigned from, unsigned to) edma_link() argument
528 edma_get_position(struct edma_cc *ecc, unsigned slot, bool dst) edma_get_position() argument
548 struct edma_cc *ecc = echan->ecc; edma_start() local
575 struct edma_cc *ecc = echan->ecc; edma_stop() local
621 struct edma_cc *ecc = echan->ecc; edma_trigger_channel() local
634 struct edma_cc *ecc = echan->ecc; edma_clean_channel() local
653 struct edma_cc *ecc = echan->ecc; edma_assign_channel_eventq() local
671 struct edma_cc *ecc = echan->ecc; edma_alloc_channel() local
720 struct edma_cc *ecc = echan->ecc; edma_execute() local
1493 struct edma_cc *ecc = data; dma_irq_handler() local
1538 struct edma_cc *ecc = echan->ecc; edma_error_handler() local
1579 edma_error_pending(struct edma_cc *ecc) edma_error_pending() argument
1592 struct edma_cc *ecc = data; dma_ccerr_handler() local
1668 struct edma_cc *ecc = echan->ecc; edma_alloc_chan_resources() local
1922 edma_dma_init(struct edma_cc *ecc, bool legacy_mode) edma_dma_init() argument
2018 edma_setup_from_hw(struct device *dev, struct edma_soc_info *pdata, struct edma_cc *ecc) edma_setup_from_hw() argument
2232 struct edma_cc *ecc = ofdma->of_dma_data; of_edma_xlate() local
2292 struct edma_cc *ecc; edma_probe() local
2566 struct edma_cc *ecc = dev_get_drvdata(dev); edma_remove() local
2588 struct edma_cc *ecc = dev_get_drvdata(dev); edma_pm_suspend() local
2602 struct edma_cc *ecc = dev_get_drvdata(dev); edma_pm_resume() local
[all...]
/kernel/linux/linux-6.6/drivers/mtd/nand/raw/
H A Dsunxi_nand.c185 * @ecc: ECC controller structure
195 struct sunxi_nand_hw_ecc ecc; member
603 bool ecc) in sunxi_nfc_randomizer_state()
612 if (ecc) { in sunxi_nfc_randomizer_state()
623 bool ecc) in sunxi_nfc_randomizer_config()
633 state = sunxi_nfc_randomizer_state(nand, page, ecc); in sunxi_nfc_randomizer_config()
670 bool ecc, int page) in sunxi_nfc_randomizer_write_buf()
672 sunxi_nfc_randomizer_config(nand, page, ecc); in sunxi_nfc_randomizer_write_buf()
679 int len, bool ecc, int page) in sunxi_nfc_randomizer_read_buf()
681 sunxi_nfc_randomizer_config(nand, page, ecc); in sunxi_nfc_randomizer_read_buf()
602 sunxi_nfc_randomizer_state(struct nand_chip *nand, int page, bool ecc) sunxi_nfc_randomizer_state() argument
622 sunxi_nfc_randomizer_config(struct nand_chip *nand, int page, bool ecc) sunxi_nfc_randomizer_config() argument
668 sunxi_nfc_randomizer_write_buf(struct nand_chip *nand, const uint8_t *buf, int len, bool ecc, int page) sunxi_nfc_randomizer_write_buf() argument
678 sunxi_nfc_randomizer_read_buf(struct nand_chip *nand, uint8_t *buf, int len, bool ecc, int page) sunxi_nfc_randomizer_read_buf() argument
763 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nfc_hw_ecc_correct() local
803 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nfc_hw_ecc_read_chunk() local
881 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nfc_hw_ecc_read_extra_oob() local
909 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nfc_hw_ecc_read_chunks_dma() local
1037 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nfc_hw_ecc_write_chunk() local
1074 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nfc_hw_ecc_write_extra_oob() local
1095 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nfc_hw_ecc_read_page() local
1154 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nfc_hw_ecc_read_subpage() local
1210 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nfc_hw_ecc_write_page() local
1247 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nfc_hw_ecc_write_subpage() local
1281 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nfc_hw_ecc_write_page_dma() local
1563 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nand_ooblayout_ecc() local
1578 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nand_ooblayout_free() local
1617 sunxi_nand_hw_ecc_ctrl_init(struct nand_chip *nand, struct nand_ecc_ctrl *ecc, struct device_node *np) sunxi_nand_hw_ecc_ctrl_init() argument
1728 struct nand_ecc_ctrl *ecc = &nand->ecc; sunxi_nand_attach_chip() local
[all...]
H A Dnand_base.c38 #include <linux/mtd/nand-ecc-sw-hamming.h>
39 #include <linux/mtd/nand-ecc-sw-bch.h>
263 res = chip->ecc.read_oob(chip, first_page + page_offset); in nand_block_bad()
476 status = chip->ecc.write_oob_raw(chip, page & chip->pagemask); in nand_do_write_oob()
478 status = chip->ecc.write_oob(chip, page & chip->pagemask); in nand_do_write_oob()
2819 * @ecc: ECC buffer
2854 void *ecc, int ecclen, in nand_check_erased_ecc_chunk()
2867 ecc_bitflips = nand_check_erased_buf(ecc, ecclen, bitflips_threshold); in nand_check_erased_ecc_chunk()
2882 memset(ecc, 0xff, ecclen); in nand_check_erased_ecc_chunk()
2907 * nand_read_page_raw - [INTERN] read raw page data without ecc
2853 nand_check_erased_ecc_chunk(void *data, int datalen, void *ecc, int ecclen, void *extraoob, int extraooblen, int bitflips_threshold) nand_check_erased_ecc_chunk() argument
5832 struct nand_ecc_ctrl *ecc = &chip->ecc; nand_set_ecc_on_host_ops() local
5893 struct nand_ecc_ctrl *ecc = &chip->ecc; nand_set_ecc_soft_ops() local
6269 struct nand_ecc_ctrl *ecc = &chip->ecc; nand_scan_tail() local
[all...]
H A Dnand_micron.c66 struct micron_on_die_ecc ecc; member
127 .ecc = micron_nand_on_die_4_ooblayout_ecc,
140 oobregion->offset = mtd->oobsize - chip->ecc.total; in micron_nand_on_die_8_ooblayout_ecc()
141 oobregion->length = chip->ecc.total; in micron_nand_on_die_8_ooblayout_ecc()
156 oobregion->length = mtd->oobsize - chip->ecc.total - 2; in micron_nand_on_die_8_ooblayout_free()
162 .ecc = micron_nand_on_die_8_ooblayout_ecc,
172 if (micron->ecc.forced) in micron_nand_on_die_ecc_setup()
175 if (micron->ecc.enabled == enable) in micron_nand_on_die_ecc_setup()
183 micron->ecc.enabled = enable; in micron_nand_on_die_ecc_setup()
242 ret = nand_read_page_op(chip, page, 0, micron->ecc in micron_nand_on_die_ecc_status_4()
[all...]
H A Drockchip-nand-controller.c93 * struct rk_ecc_cnt_status: represent a ecc status data.
197 return (u8 *)p + i * chip->ecc.size; in rk_nfc_buf_to_data_ptr()
214 poi = chip->oob_poi + rknand->metadata_size + chip->ecc.bytes * i; in rk_nfc_buf_to_oob_ecc_ptr()
221 return chip->ecc.size + chip->ecc.bytes + NFC_SYS_DATA_SIZE; in rk_nfc_data_len()
235 return nfc->page_buf + i * rk_nfc_data_len(chip) + chip->ecc.size; in rk_nfc_oob_ptr()
265 struct nand_ecc_ctrl *ecc = &chip->ecc; in rk_nfc_select_chip() local
299 if (nfc->cur_ecc != ecc->strength) in rk_nfc_select_chip()
300 rk_nfc_hw_ecc_setup(chip, ecc in rk_nfc_select_chip()
512 struct nand_ecc_ctrl *ecc = &chip->ecc; rk_nfc_write_page_raw() local
594 struct nand_ecc_ctrl *ecc = &chip->ecc; rk_nfc_write_page_hwecc() local
706 struct nand_ecc_ctrl *ecc = &chip->ecc; rk_nfc_read_page_raw() local
760 struct nand_ecc_ctrl *ecc = &chip->ecc; rk_nfc_read_page_hwecc() local
974 struct nand_ecc_ctrl *ecc = &chip->ecc; rk_nfc_ecc_init() local
1019 struct nand_ecc_ctrl *ecc = &chip->ecc; rk_nfc_attach_chip() local
[all...]
H A Domap2.c18 #include <linux/mtd/nand-ecc-sw-bch.h>
122 /* GPMC ecc engine settings for read */
129 /* GPMC ecc engine settings for write */
624 * @ecc_buf: buffer to store ecc code
644 * @ecc_data1: ecc code from nand spare area
645 * @ecc_data2: ecc code from hardware register obtained from hardware ecc
774 * @read_ecc: ecc read from nand flash
775 * @calc_ecc: ecc read from HW ECC registers
777 * Compares the ecc rea
1217 struct nand_ecc_ctrl *ecc = &info->nand.ecc; omap_elm_correct_data() local
[all...]
/kernel/linux/linux-5.10/drivers/mtd/nand/
H A Decc.c41 * - ecc: Correction enabled
56 * - external + prepare + ecc + read: do nothing
57 * - external + finish + ecc + read: calculate expected ECC bytes, extract
60 * - external + prepare + ecc + write: calculate ECC bytes and store them at
63 * - external + finish + ecc + write: do nothing
72 * - pipelined + prepare + ecc + read: enable the controller's ECC engine if
74 * - pipelined + finish + ecc + read: check the status, report any
76 * - pipelined + prepare + ecc + write: enable the controller's ECC engine if
78 * - pipelined + finish + ecc + write: do nothing
87 * - ondie + prepare + ecc
[all...]
/kernel/linux/linux-5.10/drivers/mtd/nand/raw/atmel/
H A Dpmecc.c226 if (req->ecc.sectorsize == 512) { in atmel_pmecc_create_gf_tables()
260 if (req->ecc.sectorsize == 512) in atmel_pmecc_get_gf_tables()
282 if (req->pagesize <= 0 || req->oobsize <= 0 || req->ecc.bytes <= 0) in atmel_pmecc_prepare_user_req()
285 if (req->ecc.ooboffset >= 0 && in atmel_pmecc_prepare_user_req()
286 req->ecc.ooboffset + req->ecc.bytes > req->oobsize) in atmel_pmecc_prepare_user_req()
289 if (req->ecc.sectorsize == ATMEL_PMECC_SECTOR_SIZE_AUTO) { in atmel_pmecc_prepare_user_req()
290 if (req->ecc.strength != ATMEL_PMECC_MAXIMIZE_ECC_STRENGTH) in atmel_pmecc_prepare_user_req()
294 req->ecc.sectorsize = 1024; in atmel_pmecc_prepare_user_req()
296 req->ecc in atmel_pmecc_prepare_user_req()
690 atmel_pmecc_correct_sector(struct atmel_pmecc_user *user, int sector, void *data, void *ecc) atmel_pmecc_correct_sector() argument
752 atmel_pmecc_get_generated_eccbytes(struct atmel_pmecc_user *user, int sector, void *ecc) atmel_pmecc_get_generated_eccbytes() argument
[all...]
/kernel/linux/linux-6.6/drivers/mtd/nand/raw/atmel/
H A Dpmecc.c226 if (req->ecc.sectorsize == 512) { in atmel_pmecc_create_gf_tables()
260 if (req->ecc.sectorsize == 512) in atmel_pmecc_get_gf_tables()
282 if (req->pagesize <= 0 || req->oobsize <= 0 || req->ecc.bytes <= 0) in atmel_pmecc_prepare_user_req()
285 if (req->ecc.ooboffset >= 0 && in atmel_pmecc_prepare_user_req()
286 req->ecc.ooboffset + req->ecc.bytes > req->oobsize) in atmel_pmecc_prepare_user_req()
289 if (req->ecc.sectorsize == ATMEL_PMECC_SECTOR_SIZE_AUTO) { in atmel_pmecc_prepare_user_req()
290 if (req->ecc.strength != ATMEL_PMECC_MAXIMIZE_ECC_STRENGTH) in atmel_pmecc_prepare_user_req()
294 req->ecc.sectorsize = 1024; in atmel_pmecc_prepare_user_req()
296 req->ecc in atmel_pmecc_prepare_user_req()
690 atmel_pmecc_correct_sector(struct atmel_pmecc_user *user, int sector, void *data, void *ecc) atmel_pmecc_correct_sector() argument
752 atmel_pmecc_get_generated_eccbytes(struct atmel_pmecc_user *user, int sector, void *ecc) atmel_pmecc_get_generated_eccbytes() argument
[all...]

Completed in 35 milliseconds

1234567891011