Lines Matching refs:mtd

176 	struct mtd_info		mtd;  member
275 static void lpc32xx_nand_cmd_ctrl(struct mtd_info *mtd, int cmd, in lpc32xx_nand_cmd_ctrl() argument
278 struct nand_chip *nand_chip = mtd->priv; in lpc32xx_nand_cmd_ctrl()
292 static int lpc32xx_nand_device_ready(struct mtd_info *mtd) in lpc32xx_nand_device_ready() argument
294 struct nand_chip *nand_chip = mtd->priv; in lpc32xx_nand_device_ready()
319 static int lpc32xx_waitfunc_nand(struct mtd_info *mtd, struct nand_chip *chip) in lpc32xx_waitfunc_nand() argument
330 dev_dbg(&mtd->dev, "Warning: NAND not ready.\n"); in lpc32xx_waitfunc_nand()
338 static int lpc32xx_waitfunc_controller(struct mtd_info *mtd, in lpc32xx_waitfunc_controller() argument
350 dev_dbg(&mtd->dev, "Warning: Controller not ready.\n"); in lpc32xx_waitfunc_controller()
358 static int lpc32xx_waitfunc(struct mtd_info *mtd, struct nand_chip *chip) in lpc32xx_waitfunc() argument
360 lpc32xx_waitfunc_nand(mtd, chip); in lpc32xx_waitfunc()
361 lpc32xx_waitfunc_controller(mtd, chip); in lpc32xx_waitfunc()
389 static int lpc32xx_xmit_dma(struct mtd_info *mtd, void *mem, int len, in lpc32xx_xmit_dma() argument
392 struct nand_chip *chip = mtd->priv; in lpc32xx_xmit_dma()
403 dev_err(mtd->dev.parent, "Failed to map sg list\n"); in lpc32xx_xmit_dma()
409 dev_err(mtd->dev.parent, "Failed to prepare slave sg\n"); in lpc32xx_xmit_dma()
431 static int lpc32xx_read_page(struct mtd_info *mtd, struct nand_chip *chip, in lpc32xx_read_page() argument
451 chip->cmdfunc(mtd, NAND_CMD_READ0, 0, page); in lpc32xx_read_page()
459 lpc32xx_waitfunc_controller(mtd, chip); in lpc32xx_read_page()
464 mtd->ecc_stats.failed++; in lpc32xx_read_page()
465 dev_warn(&mtd->dev, "%s: DECODER_FAILURE\n", __func__); in lpc32xx_read_page()
467 mtd->ecc_stats.corrected += ((mlc_isr >> 4) & 0x3) + 1; in lpc32xx_read_page()
472 res = lpc32xx_xmit_dma(mtd, dma_buf + i * 512, 512, in lpc32xx_read_page()
491 memcpy(buf, dma_buf, mtd->writesize); in lpc32xx_read_page()
496 static int lpc32xx_write_page_lowlevel(struct mtd_info *mtd, in lpc32xx_write_page_lowlevel() argument
509 memcpy(dma_buf, buf, mtd->writesize); in lpc32xx_write_page_lowlevel()
518 res = lpc32xx_xmit_dma(mtd, dma_buf + i * 512, 512, in lpc32xx_write_page_lowlevel()
538 lpc32xx_waitfunc_controller(mtd, chip); in lpc32xx_write_page_lowlevel()
543 static int lpc32xx_read_oob(struct mtd_info *mtd, struct nand_chip *chip, in lpc32xx_read_oob() argument
549 lpc32xx_read_page(mtd, chip, host->dummy_buf, 1, page); in lpc32xx_read_oob()
554 static int lpc32xx_write_oob(struct mtd_info *mtd, struct nand_chip *chip, in lpc32xx_write_oob() argument
562 static void lpc32xx_ecc_enable(struct mtd_info *mtd, int mode) in lpc32xx_ecc_enable() argument
569 struct mtd_info *mtd = &host->mtd; in lpc32xx_dma_setup() local
573 dev_err(mtd->dev.parent, "no DMA platform data\n"); in lpc32xx_dma_setup()
582 dev_err(mtd->dev.parent, "Failed to request DMA channel\n"); in lpc32xx_dma_setup()
601 dev_err(mtd->dev.parent, "Failed to setup DMA slave\n"); in lpc32xx_dma_setup()
646 struct mtd_info *mtd; in lpc32xx_nand_probe() local
664 mtd = &host->mtd; in lpc32xx_nand_probe()
685 mtd->priv = nand_chip; in lpc32xx_nand_probe()
686 mtd->dev.parent = &pdev->dev; in lpc32xx_nand_probe()
736 if (nand_scan_ident(mtd, 1, NULL)) { in lpc32xx_nand_probe()
741 host->dma_buf = devm_kzalloc(&pdev->dev, mtd->writesize, GFP_KERNEL); in lpc32xx_nand_probe()
747 host->dummy_buf = devm_kzalloc(&pdev->dev, mtd->writesize, GFP_KERNEL); in lpc32xx_nand_probe()
754 nand_chip->ecc.size = mtd->writesize; in lpc32xx_nand_probe()
756 host->mlcsubpages = mtd->writesize / 512; in lpc32xx_nand_probe()
782 if (nand_scan_tail(mtd)) { in lpc32xx_nand_probe()
787 mtd->name = DRV_NAME; in lpc32xx_nand_probe()
790 res = mtd_device_parse_register(mtd, NULL, &ppdata, host->ncfg->parts, in lpc32xx_nand_probe()
795 nand_release(mtd); in lpc32xx_nand_probe()
818 struct mtd_info *mtd = &host->mtd; in lpc32xx_nand_remove() local
820 nand_release(mtd); in lpc32xx_nand_remove()