/kernel/linux/linux-5.10/drivers/mtd/nand/raw/ |
H A D | mtk_ecc.c | 68 /* 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 D | nand_micron.c | 66 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 D | omap2.c | 122 /* 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 D | nand_base.c | 262 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 D | nand_bch.c | 23 * @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 D | sunxi_nand.c | 593 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 D | ecc-mtk.c | 18 #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 D | ecc.c | 41 * - 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 D | ingenic_ecc.c | 19 * @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 D | ingenic_nand_drv.c | 44 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 D | jz4740_ecc.c | 45 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 D | ingenic_ecc.h | 29 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 D | ingenic_ecc.c | 20 * @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 D | ingenic_nand_drv.c | 44 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 D | jz4740_ecc.c | 45 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 D | edma.c | 228 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 D | edma.c | 219 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 D | sunxi_nand.c | 185 * @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 D | nand_base.c | 38 #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 D | nand_micron.c | 66 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 D | rockchip-nand-controller.c | 93 * 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 D | omap2.c | 18 #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 D | ecc.c | 41 * - 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 D | pmecc.c | 226 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 D | pmecc.c | 226 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...] |