Lines Matching defs:mtd
23 #include <linux/mtd/mtd.h>
24 #include <linux/mtd/rawnand.h>
25 #include <linux/mtd/partitions.h>
886 static void brcmnand_set_cmd_addr(struct mtd_info *mtd, u64 addr)
888 struct nand_chip *chip = mtd_to_nand(mtd);
1184 * Set mtd->ooblayout to the appropriate mtd_ooblayout_ops given
1188 static int brcmnand_hamming_ooblayout_ecc(struct mtd_info *mtd, int section,
1191 struct nand_chip *chip = mtd_to_nand(mtd);
1206 static int brcmnand_hamming_ooblayout_free(struct mtd_info *mtd, int section,
1209 struct nand_chip *chip = mtd_to_nand(mtd);
1246 static int brcmnand_bch_ooblayout_ecc(struct mtd_info *mtd, int section,
1249 struct nand_chip *chip = mtd_to_nand(mtd);
1264 static int brcmnand_bch_ooblayout_free_lp(struct mtd_info *mtd, int section,
1267 struct nand_chip *chip = mtd_to_nand(mtd);
1290 static int brcmnand_bch_ooblayout_free_sp(struct mtd_info *mtd, int section,
1293 struct nand_chip *chip = mtd_to_nand(mtd);
1326 struct mtd_info *mtd = nand_to_mtd(&host->chip);
1337 mtd_set_ooblayout(mtd, &brcmnand_hamming_ooblayout_ops);
1349 mtd_set_ooblayout(mtd, &brcmnand_bch_sp_ooblayout_ops);
1351 mtd_set_ooblayout(mtd, &brcmnand_bch_lp_ooblayout_ops);
1363 static void brcmnand_wp(struct mtd_info *mtd, int wp)
1365 struct nand_chip *chip = mtd_to_nand(mtd);
1660 struct mtd_info *mtd = nand_to_mtd(chip);
1664 if (mtd->oops_panic_write || ctrl->irq < 0) {
1758 struct mtd_info *mtd = nand_to_mtd(chip);
1793 brcmnand_wp(mtd, 0);
1821 brcmnand_set_cmd_addr(mtd, addr);
1854 brcmnand_wp(mtd, 1);
2149 static int brcmnand_read_by_pio(struct mtd_info *mtd, struct nand_chip *chip,
2160 brcmnand_set_cmd_addr(mtd, addr);
2176 mtd->oobsize / trans,
2211 static int brcmstb_nand_verify_erased_page(struct mtd_info *mtd,
2233 mtd_ooblayout_ecc(mtd, i, &ecc);
2249 static int brcmnand_read(struct mtd_info *mtd, struct nand_chip *chip,
2282 memset(oob, 0x99, mtd->oobsize);
2284 err = brcmnand_read_by_pio(mtd, chip, addr, trans, buf,
2310 err = brcmstb_nand_verify_erased_page(mtd, chip, buf,
2319 mtd->ecc_stats.failed++;
2329 err = brcmnand_read_by_pio(mtd, chip, addr, trans, buf,
2334 mtd->ecc_stats.corrected += corrected;
2336 return max(mtd->bitflip_threshold, corrected);
2345 struct mtd_info *mtd = nand_to_mtd(chip);
2351 return brcmnand_read(mtd, chip, host->last_addr,
2352 mtd->writesize >> FC_SHIFT, (u32 *)buf, oob);
2359 struct mtd_info *mtd = nand_to_mtd(chip);
2366 ret = brcmnand_read(mtd, chip, host->last_addr,
2367 mtd->writesize >> FC_SHIFT, (u32 *)buf, oob);
2374 struct mtd_info *mtd = nand_to_mtd(chip);
2376 return brcmnand_read(mtd, chip, (u64)page << chip->page_shift,
2377 mtd->writesize >> FC_SHIFT,
2383 struct mtd_info *mtd = nand_to_mtd(chip);
2387 brcmnand_read(mtd, chip, (u64)page << chip->page_shift,
2388 mtd->writesize >> FC_SHIFT,
2394 static int brcmnand_write(struct mtd_info *mtd, struct nand_chip *chip,
2399 unsigned int i, j, trans = mtd->writesize >> FC_SHIFT;
2409 brcmnand_wp(mtd, 0);
2414 if (mtd->oops_panic_write)
2419 if (ctrl->dma_trans(host, addr, (u32 *)buf, oob, mtd->writesize,
2429 brcmnand_set_cmd_addr(mtd, addr);
2445 mtd->oobsize / trans,
2461 brcmnand_wp(mtd, 1);
2468 struct mtd_info *mtd = nand_to_mtd(chip);
2473 brcmnand_write(mtd, chip, host->last_addr, (const u32 *)buf, oob);
2481 struct mtd_info *mtd = nand_to_mtd(chip);
2487 brcmnand_write(mtd, chip, host->last_addr, (const u32 *)buf, oob);
2502 struct mtd_info *mtd = nand_to_mtd(chip);
2507 ret = brcmnand_write(mtd, chip, (u64)page << chip->page_shift, NULL,
2652 struct mtd_info *mtd = nand_to_mtd(&host->chip);
2671 cfg->spare_area_size = mtd->oobsize /
2672 (mtd->writesize >> FC_SHIFT);
2679 * Set mtd and memorg oobsize to be consistent with controller's
2682 mtd->oobsize = cfg->spare_area_size * (mtd->writesize >> FC_SHIFT);
2683 memorg->oobsize = mtd->oobsize;
2685 cfg->device_size = mtd->size;
2686 cfg->block_size = mtd->erasesize;
2687 cfg->page_size = mtd->writesize;
2690 cfg->blk_adr_bytes = get_blk_adr_bytes(mtd->size, mtd->writesize);
2754 if (mtd->writesize > 512)
2788 struct mtd_info *mtd = nand_to_mtd(chip);
2809 mtd->bitflip_threshold = 1;
2831 struct mtd_info *mtd;
2836 mtd = nand_to_mtd(&host->chip);
2840 mtd->name = devm_kasprintf(dev, GFP_KERNEL, "brcmnand.%d",
2842 if (!mtd->name)
2845 mtd->owner = THIS_MODULE;
2846 mtd->dev.parent = dev;
2880 ret = mtd_device_parse_register(mtd, part_probe_types, NULL, NULL, 0);