Lines Matching refs:mtd

23 #include <linux/mtd/mtd.h>
24 #include <linux/mtd/rawnand.h>
25 #include <linux/mtd/partitions.h>
34 /* mtd information per set */
68 static int fsl_elbc_ooblayout_ecc(struct mtd_info *mtd, int section,
71 struct nand_chip *chip = mtd_to_nand(mtd);
86 static int fsl_elbc_ooblayout_free(struct mtd_info *mtd, int section,
89 struct nand_chip *chip = mtd_to_nand(mtd);
97 if (mtd->writesize > 512)
106 oobregion->length = mtd->oobsize - oobregion->offset;
151 static void set_addr(struct mtd_info *mtd, int column, int page_addr, int oob)
153 struct nand_chip *chip = mtd_to_nand(mtd);
202 static int fsl_elbc_run_command(struct mtd_info *mtd)
204 struct nand_chip *chip = mtd_to_nand(mtd);
251 if (elbc_fcm_ctrl->read_bytes == mtd->writesize + mtd->oobsize) {
267 mtd->ecc_stats.corrected++;
309 struct mtd_info *mtd = nand_to_mtd(chip);
334 set_addr(mtd, 0, page_addr, 0);
336 elbc_fcm_ctrl->read_bytes = mtd->writesize + mtd->oobsize;
340 fsl_elbc_run_command(mtd);
358 out_be32(&lbc->fbcr, mtd->oobsize - column);
359 set_addr(mtd, column, page_addr, 1);
361 elbc_fcm_ctrl->read_bytes = mtd->writesize + mtd->oobsize;
364 fsl_elbc_run_command(mtd);
383 set_addr(mtd, 0, 0, 0);
384 fsl_elbc_run_command(mtd);
392 set_addr(mtd, 0, page_addr, 0);
415 fsl_elbc_run_command(mtd);
429 if (column >= mtd->writesize) {
431 column -= mtd->writesize;
471 set_addr(mtd, column, page_addr, elbc_fcm_ctrl->oob);
486 elbc_fcm_ctrl->index != mtd->writesize + mtd->oobsize)
492 fsl_elbc_run_command(mtd);
504 set_addr(mtd, 0, 0, 0);
507 fsl_elbc_run_command(mtd);
520 fsl_elbc_run_command(mtd);
542 struct mtd_info *mtd = nand_to_mtd(chip);
545 unsigned int bufsize = mtd->writesize + mtd->oobsize;
635 struct mtd_info *mtd = nand_to_mtd(chip);
640 nand_read_page_op(chip, page, 0, buf, mtd->writesize);
642 fsl_elbc_read_buf(chip, chip->oob_poi, mtd->oobsize);
645 mtd->ecc_stats.failed++;
656 struct mtd_info *mtd = nand_to_mtd(chip);
658 nand_prog_page_begin_op(chip, page, 0, buf, mtd->writesize);
659 fsl_elbc_write_buf(chip, chip->oob_poi, mtd->oobsize);
671 struct mtd_info *mtd = nand_to_mtd(chip);
674 fsl_elbc_write_buf(chip, buf, mtd->writesize);
675 fsl_elbc_write_buf(chip, chip->oob_poi, mtd->oobsize);
685 struct mtd_info *mtd = nand_to_mtd(chip);
690 mtd->dev.parent = priv->dev;
723 struct mtd_info *mtd = nand_to_mtd(chip);
752 mtd_set_ooblayout(mtd, &fsl_elbc_ooblayout_ops);
808 dev_dbg(priv->dev, "fsl_elbc_init: mtd->ooblayout = %p\n",
809 mtd->ooblayout);
810 dev_dbg(priv->dev, "fsl_elbc_init: mtd->flags = %08x\n", mtd->flags);
811 dev_dbg(priv->dev, "fsl_elbc_init: mtd->size = %lld\n", mtd->size);
812 dev_dbg(priv->dev, "fsl_elbc_init: mtd->erasesize = %d\n",
813 mtd->erasesize);
814 dev_dbg(priv->dev, "fsl_elbc_init: mtd->writesize = %d\n",
815 mtd->writesize);
816 dev_dbg(priv->dev, "fsl_elbc_init: mtd->oobsize = %d\n",
817 mtd->oobsize);
820 if (mtd->writesize == 512) {
823 } else if (mtd->writesize == 2048) {
829 mtd->writesize);
843 struct mtd_info *mtd = nand_to_mtd(&priv->chip);
845 kfree(mtd->name);
869 struct mtd_info *mtd;
932 mtd = nand_to_mtd(&priv->chip);
933 mtd->name = kasprintf(GFP_KERNEL, "%llx.flash", (u64)res.start);
950 ret = mtd_device_parse_register(mtd, part_probe_types, NULL, NULL, 0);