Lines Matching refs:mtd

78 #define mtd_to_denali(m) container_of(m, struct denali_nand_info, mtd)
868 static int write_oob_data(struct mtd_info *mtd, uint8_t *buf, int page) in write_oob_data() argument
870 struct denali_nand_info *denali = mtd_to_denali(mtd); in write_oob_data()
880 write_data_to_flash_mem(denali, buf, mtd->oobsize); in write_oob_data()
897 static void read_oob_data(struct mtd_info *mtd, uint8_t *buf, int page) in read_oob_data() argument
899 struct denali_nand_info *denali = mtd_to_denali(mtd); in read_oob_data()
907 read_data_from_flash_mem(denali, buf, mtd->oobsize); in read_oob_data()
998 denali->mtd.ecc_stats.corrected++; in handle_ecc()
1060 static int write_page(struct mtd_info *mtd, struct nand_chip *chip, in write_page() argument
1063 struct denali_nand_info *denali = mtd_to_denali(mtd); in write_page()
1065 size_t size = denali->mtd.writesize + denali->mtd.oobsize; in write_page()
1078 memcpy(denali->buf.buf, buf, mtd->writesize); in write_page()
1082 memcpy(denali->buf.buf + mtd->writesize, in write_page()
1084 mtd->oobsize); in write_page()
1116 static int denali_write_page(struct mtd_info *mtd, struct nand_chip *chip, in denali_write_page() argument
1123 return write_page(mtd, chip, buf, false); in denali_write_page()
1131 static int denali_write_page_raw(struct mtd_info *mtd, struct nand_chip *chip, in denali_write_page_raw() argument
1139 return write_page(mtd, chip, buf, true); in denali_write_page_raw()
1142 static int denali_write_oob(struct mtd_info *mtd, struct nand_chip *chip, in denali_write_oob() argument
1145 return write_oob_data(mtd, chip->oob_poi, page); in denali_write_oob()
1148 static int denali_read_oob(struct mtd_info *mtd, struct nand_chip *chip, in denali_read_oob() argument
1151 read_oob_data(mtd, chip->oob_poi, page); in denali_read_oob()
1156 static int denali_read_page(struct mtd_info *mtd, struct nand_chip *chip, in denali_read_page() argument
1160 struct denali_nand_info *denali = mtd_to_denali(mtd); in denali_read_page()
1163 size_t size = denali->mtd.writesize + denali->mtd.oobsize; in denali_read_page()
1190 memcpy(buf, denali->buf.buf, mtd->writesize); in denali_read_page()
1196 read_oob_data(&denali->mtd, chip->oob_poi, denali->page); in denali_read_page()
1200 if (!is_erased(buf, denali->mtd.writesize)) in denali_read_page()
1201 denali->mtd.ecc_stats.failed++; in denali_read_page()
1202 if (!is_erased(buf, denali->mtd.oobsize)) in denali_read_page()
1203 denali->mtd.ecc_stats.failed++; in denali_read_page()
1209 static int denali_read_page_raw(struct mtd_info *mtd, struct nand_chip *chip, in denali_read_page_raw() argument
1212 struct denali_nand_info *denali = mtd_to_denali(mtd); in denali_read_page_raw()
1214 size_t size = denali->mtd.writesize + denali->mtd.oobsize; in denali_read_page_raw()
1239 memcpy(buf, denali->buf.buf, mtd->writesize); in denali_read_page_raw()
1240 memcpy(chip->oob_poi, denali->buf.buf + mtd->writesize, mtd->oobsize); in denali_read_page_raw()
1245 static uint8_t denali_read_byte(struct mtd_info *mtd) in denali_read_byte() argument
1247 struct denali_nand_info *denali = mtd_to_denali(mtd); in denali_read_byte()
1256 static void denali_select_chip(struct mtd_info *mtd, int chip) in denali_select_chip() argument
1258 struct denali_nand_info *denali = mtd_to_denali(mtd); in denali_select_chip()
1265 static int denali_waitfunc(struct mtd_info *mtd, struct nand_chip *chip) in denali_waitfunc() argument
1267 struct denali_nand_info *denali = mtd_to_denali(mtd); in denali_waitfunc()
1275 static int denali_erase(struct mtd_info *mtd, int page) in denali_erase() argument
1277 struct denali_nand_info *denali = mtd_to_denali(mtd); in denali_erase()
1294 static void denali_cmdfunc(struct mtd_info *mtd, unsigned int cmd, int col, in denali_cmdfunc() argument
1297 struct denali_nand_info *denali = mtd_to_denali(mtd); in denali_cmdfunc()
1450 denali->mtd.dev.parent = denali->dev; in denali_init()
1466 denali->mtd.name = "denali-nand"; in denali_init()
1467 denali->mtd.priv = &denali->nand; in denali_init()
1480 if (nand_scan_ident(&denali->mtd, denali->max_banks, NULL)) { in denali_init()
1488 denali->mtd.writesize + denali->mtd.oobsize, in denali_init()
1503 denali->mtd.writesize + denali->mtd.oobsize, in denali_init()
1524 denali->mtd.writesize <<= (denali->devnum - 1); in denali_init()
1525 denali->mtd.oobsize <<= (denali->devnum - 1); in denali_init()
1526 denali->mtd.erasesize <<= (denali->devnum - 1); in denali_init()
1527 denali->mtd.size = denali->nand.numchips * denali->nand.chipsize; in denali_init()
1554 (denali->mtd.oobsize > (denali->bbtskipbytes + in denali_init()
1555 ECC_15BITS * (denali->mtd.writesize / in denali_init()
1562 } else if (denali->mtd.oobsize < (denali->bbtskipbytes + in denali_init()
1563 ECC_8BITS * (denali->mtd.writesize / in denali_init()
1577 denali->mtd.writesize / ECC_SECTOR_SIZE; in denali_init()
1581 denali->mtd.oobsize - denali->nand.ecc.layout->eccbytes - in denali_init()
1589 denali->totalblks = denali->mtd.size >> denali->nand.phys_erase_shift; in denali_init()
1602 if (nand_scan_tail(&denali->mtd)) { in denali_init()
1607 ret = mtd_device_register(&denali->mtd, NULL, 0); in denali_init()
1627 denali->mtd.writesize + denali->mtd.oobsize, in denali_remove()