Lines Matching refs:mtd
78 #define mtd_to_denali(m) container_of(m, struct denali_nand_info, mtd)
859 static int write_oob_data(struct mtd_info *mtd, uint8_t *buf, int page) in write_oob_data() argument
861 struct denali_nand_info *denali = mtd_to_denali(mtd); in write_oob_data()
871 write_data_to_flash_mem(denali, buf, mtd->oobsize); in write_oob_data()
888 static void read_oob_data(struct mtd_info *mtd, uint8_t *buf, int page) in read_oob_data() argument
890 struct denali_nand_info *denali = mtd_to_denali(mtd); in read_oob_data()
898 read_data_from_flash_mem(denali, buf, mtd->oobsize); in read_oob_data()
989 denali->mtd.ecc_stats.corrected++; in handle_ecc()
1051 static int write_page(struct mtd_info *mtd, struct nand_chip *chip, in write_page() argument
1054 struct denali_nand_info *denali = mtd_to_denali(mtd); in write_page()
1056 size_t size = denali->mtd.writesize + denali->mtd.oobsize; in write_page()
1069 memcpy(denali->buf.buf, buf, mtd->writesize); in write_page()
1073 memcpy(denali->buf.buf + mtd->writesize, in write_page()
1075 mtd->oobsize); in write_page()
1107 static int denali_write_page(struct mtd_info *mtd, struct nand_chip *chip, in denali_write_page() argument
1114 return write_page(mtd, chip, buf, false); in denali_write_page()
1122 static int denali_write_page_raw(struct mtd_info *mtd, struct nand_chip *chip, in denali_write_page_raw() argument
1129 return write_page(mtd, chip, buf, true); in denali_write_page_raw()
1132 static int denali_write_oob(struct mtd_info *mtd, struct nand_chip *chip, in denali_write_oob() argument
1135 return write_oob_data(mtd, chip->oob_poi, page); in denali_write_oob()
1138 static int denali_read_oob(struct mtd_info *mtd, struct nand_chip *chip, in denali_read_oob() argument
1141 read_oob_data(mtd, chip->oob_poi, page); in denali_read_oob()
1146 static int denali_read_page(struct mtd_info *mtd, struct nand_chip *chip, in denali_read_page() argument
1150 struct denali_nand_info *denali = mtd_to_denali(mtd); in denali_read_page()
1153 size_t size = denali->mtd.writesize + denali->mtd.oobsize; in denali_read_page()
1180 memcpy(buf, denali->buf.buf, mtd->writesize); in denali_read_page()
1186 read_oob_data(&denali->mtd, chip->oob_poi, denali->page); in denali_read_page()
1190 if (!is_erased(buf, denali->mtd.writesize)) in denali_read_page()
1191 denali->mtd.ecc_stats.failed++; in denali_read_page()
1192 if (!is_erased(buf, denali->mtd.oobsize)) in denali_read_page()
1193 denali->mtd.ecc_stats.failed++; in denali_read_page()
1199 static int denali_read_page_raw(struct mtd_info *mtd, struct nand_chip *chip, in denali_read_page_raw() argument
1202 struct denali_nand_info *denali = mtd_to_denali(mtd); in denali_read_page_raw()
1204 size_t size = denali->mtd.writesize + denali->mtd.oobsize; in denali_read_page_raw()
1229 memcpy(buf, denali->buf.buf, mtd->writesize); in denali_read_page_raw()
1230 memcpy(chip->oob_poi, denali->buf.buf + mtd->writesize, mtd->oobsize); in denali_read_page_raw()
1235 static uint8_t denali_read_byte(struct mtd_info *mtd) in denali_read_byte() argument
1237 struct denali_nand_info *denali = mtd_to_denali(mtd); in denali_read_byte()
1246 static void denali_select_chip(struct mtd_info *mtd, int chip) in denali_select_chip() argument
1248 struct denali_nand_info *denali = mtd_to_denali(mtd); in denali_select_chip()
1255 static int denali_waitfunc(struct mtd_info *mtd, struct nand_chip *chip) in denali_waitfunc() argument
1257 struct denali_nand_info *denali = mtd_to_denali(mtd); in denali_waitfunc()
1265 static int denali_erase(struct mtd_info *mtd, int page) in denali_erase() argument
1267 struct denali_nand_info *denali = mtd_to_denali(mtd); in denali_erase()
1284 static void denali_cmdfunc(struct mtd_info *mtd, unsigned int cmd, int col, in denali_cmdfunc() argument
1287 struct denali_nand_info *denali = mtd_to_denali(mtd); in denali_cmdfunc()
1440 denali->mtd.dev.parent = denali->dev; in denali_init()
1456 denali->mtd.name = "denali-nand"; in denali_init()
1457 denali->mtd.owner = THIS_MODULE; in denali_init()
1458 denali->mtd.priv = &denali->nand; in denali_init()
1471 if (nand_scan_ident(&denali->mtd, denali->max_banks, NULL)) { in denali_init()
1479 denali->mtd.writesize + denali->mtd.oobsize, in denali_init()
1494 denali->mtd.writesize + denali->mtd.oobsize, in denali_init()
1515 denali->mtd.writesize <<= (denali->devnum - 1); in denali_init()
1516 denali->mtd.oobsize <<= (denali->devnum - 1); in denali_init()
1517 denali->mtd.erasesize <<= (denali->devnum - 1); in denali_init()
1518 denali->mtd.size = denali->nand.numchips * denali->nand.chipsize; in denali_init()
1545 (denali->mtd.oobsize > (denali->bbtskipbytes + in denali_init()
1546 ECC_15BITS * (denali->mtd.writesize / in denali_init()
1553 } else if (denali->mtd.oobsize < (denali->bbtskipbytes + in denali_init()
1554 ECC_8BITS * (denali->mtd.writesize / in denali_init()
1568 denali->mtd.writesize / ECC_SECTOR_SIZE; in denali_init()
1572 denali->mtd.oobsize - denali->nand.ecc.layout->eccbytes - in denali_init()
1580 denali->totalblks = denali->mtd.size >> denali->nand.phys_erase_shift; in denali_init()
1593 if (nand_scan_tail(&denali->mtd)) { in denali_init()
1598 ret = mtd_device_register(&denali->mtd, NULL, 0); in denali_init()
1618 denali->mtd.writesize + denali->mtd.oobsize, in denali_remove()