Lines Matching refs:mtd

16 #include <linux/mtd/mtd.h>
17 #include <linux/mtd/rawnand.h>
18 #include <linux/mtd/partitions.h>
29 /* mtd information per set */
84 static int fsl_ifc_ooblayout_ecc(struct mtd_info *mtd, int section,
87 struct nand_chip *chip = mtd_to_nand(mtd);
98 static int fsl_ifc_ooblayout_free(struct mtd_info *mtd, int section,
101 struct nand_chip *chip = mtd_to_nand(mtd);
106 if (mtd->writesize == 512 &&
124 oobregion->length = mtd->oobsize - oobregion->offset;
139 static void set_addr(struct mtd_info *mtd, int column, int page_addr, int oob)
141 struct nand_chip *chip = mtd_to_nand(mtd);
154 ifc_nand_ctrl->addr = priv->vbase + buf_num * (mtd->writesize * 2);
159 ifc_nand_ctrl->index += mtd->writesize;
163 static int check_read_ecc(struct mtd_info *mtd, struct fsl_ifc_ctrl *ctrl,
172 static void fsl_ifc_run_command(struct mtd_info *mtd)
174 struct nand_chip *chip = mtd_to_nand(mtd);
225 errors = check_read_ecc(mtd, ctrl, eccstat, i);
240 mtd->ecc_stats.corrected += errors;
252 struct mtd_info *mtd)
259 if (mtd->writesize > 512) {
293 struct mtd_info *mtd = nand_to_mtd(chip);
307 set_addr(mtd, 0, page_addr, 0);
309 ifc_nand_ctrl->read_bytes = mtd->writesize + mtd->oobsize;
315 fsl_ifc_do_read(chip, 0, mtd);
316 fsl_ifc_run_command(mtd);
321 ifc_out32(mtd->oobsize - column, &ifc->ifc_nand.nand_fbcr);
322 set_addr(mtd, column, page_addr, 1);
324 ifc_nand_ctrl->read_bytes = mtd->writesize + mtd->oobsize;
326 fsl_ifc_do_read(chip, 1, mtd);
327 fsl_ifc_run_command(mtd);
355 set_addr(mtd, 0, 0, 0);
356 fsl_ifc_run_command(mtd);
362 set_addr(mtd, 0, page_addr, 0);
378 fsl_ifc_run_command(mtd);
387 if (mtd->writesize > 512) {
427 if (column >= mtd->writesize)
435 if (column >= mtd->writesize) {
437 column -= mtd->writesize;
441 set_addr(mtd, column, page_addr, ifc_nand_ctrl->oob);
455 fsl_ifc_run_command(mtd);
468 set_addr(mtd, 0, 0, 0);
471 fsl_ifc_run_command(mtd);
490 fsl_ifc_run_command(mtd);
511 struct mtd_info *mtd = nand_to_mtd(chip);
513 unsigned int bufsize = mtd->writesize + mtd->oobsize;
606 struct mtd_info *mtd = nand_to_mtd(chip);
620 set_addr(mtd, 0, 0, 0);
623 fsl_ifc_run_command(mtd);
640 struct mtd_info *mtd = nand_to_mtd(chip);
647 mtd_ooblayout_ecc(mtd, 0, &oobregion);
655 mtd->ecc_stats.failed++;
657 mtd->ecc_stats.corrected += res;
670 struct mtd_info *mtd = nand_to_mtd(chip);
675 nand_read_page_op(chip, page, 0, buf, mtd->writesize);
677 fsl_ifc_read_buf(chip, chip->oob_poi, mtd->oobsize);
681 fsl_ifc_read_buf(chip, chip->oob_poi, mtd->oobsize);
687 mtd->ecc_stats.failed++;
698 struct mtd_info *mtd = nand_to_mtd(chip);
700 nand_prog_page_begin_op(chip, page, 0, buf, mtd->writesize);
701 fsl_ifc_write_buf(chip, chip->oob_poi, mtd->oobsize);
708 struct mtd_info *mtd = nand_to_mtd(chip);
719 mtd_set_ooblayout(mtd, &fsl_ifc_ooblayout_ops);
759 dev_dbg(priv->dev, "%s: mtd->ooblayout = %p\n", __func__,
760 mtd->ooblayout);
761 dev_dbg(priv->dev, "%s: mtd->flags = %08x\n", __func__, mtd->flags);
762 dev_dbg(priv->dev, "%s: mtd->size = %lld\n", __func__, mtd->size);
763 dev_dbg(priv->dev, "%s: mtd->erasesize = %d\n", __func__,
764 mtd->erasesize);
765 dev_dbg(priv->dev, "%s: mtd->writesize = %d\n", __func__,
766 mtd->writesize);
767 dev_dbg(priv->dev, "%s: mtd->oobsize = %d\n", __func__,
768 mtd->oobsize);
860 struct mtd_info *mtd = nand_to_mtd(&priv->chip);
865 mtd->dev.parent = priv->dev;
953 struct mtd_info *mtd = nand_to_mtd(&priv->chip);
955 kfree(mtd->name);
990 struct mtd_info *mtd;
1063 mtd = nand_to_mtd(&priv->chip);
1064 mtd->name = kasprintf(GFP_KERNEL, "%llx.flash", (u64)res.start);
1065 if (!mtd->name) {
1081 ret = mtd_device_parse_register(mtd, part_probe_types, NULL, NULL, 0);