Lines Matching defs:mtd

22 #include <linux/mtd/mtd.h>
23 #include <linux/mtd/rawnand.h>
24 #include <linux/mtd/partitions.h>
878 static void brcmnand_set_cmd_addr(struct mtd_info *mtd, u64 addr)
880 struct nand_chip *chip = mtd_to_nand(mtd);
1170 * Set mtd->ooblayout to the appropriate mtd_ooblayout_ops given
1174 static int brcmnand_hamming_ooblayout_ecc(struct mtd_info *mtd, int section,
1177 struct nand_chip *chip = mtd_to_nand(mtd);
1192 static int brcmnand_hamming_ooblayout_free(struct mtd_info *mtd, int section,
1195 struct nand_chip *chip = mtd_to_nand(mtd);
1232 static int brcmnand_bch_ooblayout_ecc(struct mtd_info *mtd, int section,
1235 struct nand_chip *chip = mtd_to_nand(mtd);
1250 static int brcmnand_bch_ooblayout_free_lp(struct mtd_info *mtd, int section,
1253 struct nand_chip *chip = mtd_to_nand(mtd);
1276 static int brcmnand_bch_ooblayout_free_sp(struct mtd_info *mtd, int section,
1279 struct nand_chip *chip = mtd_to_nand(mtd);
1312 struct mtd_info *mtd = nand_to_mtd(&host->chip);
1323 mtd_set_ooblayout(mtd, &brcmnand_hamming_ooblayout_ops);
1335 mtd_set_ooblayout(mtd, &brcmnand_bch_sp_ooblayout_ops);
1337 mtd_set_ooblayout(mtd, &brcmnand_bch_lp_ooblayout_ops);
1349 static void brcmnand_wp(struct mtd_info *mtd, int wp)
1351 struct nand_chip *chip = mtd_to_nand(mtd);
1629 struct mtd_info *mtd = nand_to_mtd(chip);
1633 if (mtd->oops_panic_write) {
1726 struct mtd_info *mtd = nand_to_mtd(chip);
1761 brcmnand_wp(mtd, 0);
1789 brcmnand_set_cmd_addr(mtd, addr);
1822 brcmnand_wp(mtd, 1);
2093 static int brcmnand_read_by_pio(struct mtd_info *mtd, struct nand_chip *chip,
2104 brcmnand_set_cmd_addr(mtd, addr);
2120 mtd->oobsize / trans,
2155 static int brcmstb_nand_verify_erased_page(struct mtd_info *mtd,
2177 mtd_ooblayout_ecc(mtd, i, &ecc);
2193 static int brcmnand_read(struct mtd_info *mtd, struct nand_chip *chip,
2225 memset(oob, 0x99, mtd->oobsize);
2227 err = brcmnand_read_by_pio(mtd, chip, addr, trans, buf,
2253 err = brcmstb_nand_verify_erased_page(mtd, chip, buf,
2262 mtd->ecc_stats.failed++;
2272 err = brcmnand_read_by_pio(mtd, chip, addr, trans, buf,
2277 mtd->ecc_stats.corrected += corrected;
2279 return max(mtd->bitflip_threshold, corrected);
2288 struct mtd_info *mtd = nand_to_mtd(chip);
2294 return brcmnand_read(mtd, chip, host->last_addr,
2295 mtd->writesize >> FC_SHIFT, (u32 *)buf, oob);
2302 struct mtd_info *mtd = nand_to_mtd(chip);
2309 ret = brcmnand_read(mtd, chip, host->last_addr,
2310 mtd->writesize >> FC_SHIFT, (u32 *)buf, oob);
2317 struct mtd_info *mtd = nand_to_mtd(chip);
2319 return brcmnand_read(mtd, chip, (u64)page << chip->page_shift,
2320 mtd->writesize >> FC_SHIFT,
2326 struct mtd_info *mtd = nand_to_mtd(chip);
2330 brcmnand_read(mtd, chip, (u64)page << chip->page_shift,
2331 mtd->writesize >> FC_SHIFT,
2337 static int brcmnand_write(struct mtd_info *mtd, struct nand_chip *chip,
2342 unsigned int i, j, trans = mtd->writesize >> FC_SHIFT;
2352 brcmnand_wp(mtd, 0);
2358 if (ctrl->dma_trans(host, addr, (u32 *)buf, mtd->writesize,
2368 brcmnand_set_cmd_addr(mtd, addr);
2384 mtd->oobsize / trans,
2400 brcmnand_wp(mtd, 1);
2407 struct mtd_info *mtd = nand_to_mtd(chip);
2412 brcmnand_write(mtd, chip, host->last_addr, (const u32 *)buf, oob);
2420 struct mtd_info *mtd = nand_to_mtd(chip);
2426 brcmnand_write(mtd, chip, host->last_addr, (const u32 *)buf, oob);
2441 struct mtd_info *mtd = nand_to_mtd(chip);
2446 ret = brcmnand_write(mtd, chip, (u64)page << chip->page_shift, NULL,
2591 struct mtd_info *mtd = nand_to_mtd(&host->chip);
2610 cfg->spare_area_size = mtd->oobsize /
2611 (mtd->writesize >> FC_SHIFT);
2618 * Set mtd and memorg oobsize to be consistent with controller's
2621 mtd->oobsize = cfg->spare_area_size * (mtd->writesize >> FC_SHIFT);
2622 memorg->oobsize = mtd->oobsize;
2624 cfg->device_size = mtd->size;
2625 cfg->block_size = mtd->erasesize;
2626 cfg->page_size = mtd->writesize;
2629 cfg->blk_adr_bytes = get_blk_adr_bytes(mtd->size, mtd->writesize);
2693 if (mtd->writesize > 512)
2727 struct mtd_info *mtd = nand_to_mtd(chip);
2748 mtd->bitflip_threshold = 1;
2769 struct mtd_info *mtd;
2780 mtd = nand_to_mtd(&host->chip);
2785 mtd->name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "brcmnand.%d",
2787 if (!mtd->name)
2790 mtd->owner = THIS_MODULE;
2791 mtd->dev.parent = &pdev->dev;
2825 ret = mtd_device_register(mtd, NULL, 0);