• Home
  • Raw
  • Download

Lines Matching refs:mtd

110 	struct mtd_info	*mtd = &this->mtd;  in get_ecc_strength()  local
113 ecc_strength = ((mtd->oobsize - geo->metadata_size) * 8) in get_ecc_strength()
142 struct mtd_info *mtd = &this->mtd; in set_geometry_by_ecc_info() local
143 struct nand_chip *chip = mtd->priv; in set_geometry_by_ecc_info()
169 if (geo->ecc_chunk_size < mtd->oobsize) { in set_geometry_by_ecc_info()
172 chip->ecc_step_ds, mtd->oobsize); in set_geometry_by_ecc_info()
179 geo->ecc_chunk_count = mtd->writesize / geo->ecc_chunk_size; in set_geometry_by_ecc_info()
229 geo->page_size = mtd->writesize + geo->metadata_size + in set_geometry_by_ecc_info()
233 if (geo->page_size < mtd->writesize + mtd->oobsize) { in set_geometry_by_ecc_info()
234 of->offset = geo->page_size - mtd->writesize; in set_geometry_by_ecc_info()
235 of->length = mtd->oobsize - of->offset; in set_geometry_by_ecc_info()
238 geo->payload_size = mtd->writesize; in set_geometry_by_ecc_info()
248 block_mark_bit_offset = mtd->writesize * 8 - in set_geometry_by_ecc_info()
260 struct mtd_info *mtd = &this->mtd; in legacy_set_geometry() local
277 while (geo->ecc_chunk_size < mtd->oobsize) { in legacy_set_geometry()
282 geo->ecc_chunk_count = mtd->writesize / geo->ecc_chunk_size; in legacy_set_geometry()
294 geo->page_size = mtd->writesize + mtd->oobsize; in legacy_set_geometry()
295 geo->payload_size = mtd->writesize; in legacy_set_geometry()
358 block_mark_bit_offset = mtd->writesize * 8 - in legacy_set_geometry()
807 struct mtd_info *mtd = &this->mtd; in gpmi_alloc_dma_buffer() local
822 this->data_buffer_dma = kzalloc(mtd->writesize ?: PAGE_SIZE, in gpmi_alloc_dma_buffer()
841 this->raw_buffer = kzalloc(mtd->writesize + mtd->oobsize, GFP_KERNEL); in gpmi_alloc_dma_buffer()
857 static void gpmi_cmd_ctrl(struct mtd_info *mtd, int data, unsigned int ctrl) in gpmi_cmd_ctrl() argument
859 struct nand_chip *chip = mtd->priv; in gpmi_cmd_ctrl()
891 static int gpmi_dev_ready(struct mtd_info *mtd) in gpmi_dev_ready() argument
893 struct nand_chip *chip = mtd->priv; in gpmi_dev_ready()
899 static void gpmi_select_chip(struct mtd_info *mtd, int chipnr) in gpmi_select_chip() argument
901 struct nand_chip *chip = mtd->priv; in gpmi_select_chip()
912 static void gpmi_read_buf(struct mtd_info *mtd, uint8_t *buf, int len) in gpmi_read_buf() argument
914 struct nand_chip *chip = mtd->priv; in gpmi_read_buf()
924 static void gpmi_write_buf(struct mtd_info *mtd, const uint8_t *buf, int len) in gpmi_write_buf() argument
926 struct nand_chip *chip = mtd->priv; in gpmi_write_buf()
936 static uint8_t gpmi_read_byte(struct mtd_info *mtd) in gpmi_read_byte() argument
938 struct nand_chip *chip = mtd->priv; in gpmi_read_byte()
942 gpmi_read_buf(mtd, buf, 1); in gpmi_read_byte()
994 static int gpmi_ecc_read_page(struct mtd_info *mtd, struct nand_chip *chip, in gpmi_ecc_read_page() argument
1059 chip->cmdfunc(mtd, NAND_CMD_RNDOUT, offset, -1); in gpmi_ecc_read_page()
1060 chip->read_buf(mtd, eccbuf, eccbytes); in gpmi_ecc_read_page()
1108 mtd->ecc_stats.corrected += flips; in gpmi_ecc_read_page()
1112 mtd->ecc_stats.failed++; in gpmi_ecc_read_page()
1116 mtd->ecc_stats.corrected += *status; in gpmi_ecc_read_page()
1134 memset(chip->oob_poi, ~0, mtd->oobsize); in gpmi_ecc_read_page()
1142 static int gpmi_ecc_read_subpage(struct mtd_info *mtd, struct nand_chip *chip, in gpmi_ecc_read_subpage() argument
1178 return gpmi_ecc_read_page(mtd, chip, buf, 0, page); in gpmi_ecc_read_subpage()
1185 chip->cmdfunc(mtd, NAND_CMD_RNDOUT, col, -1); in gpmi_ecc_read_subpage()
1219 max_bitflips = gpmi_ecc_read_page(mtd, chip, buf, 0, page); in gpmi_ecc_read_subpage()
1230 static int gpmi_ecc_write_page(struct mtd_info *mtd, struct nand_chip *chip, in gpmi_ecc_write_page() argument
1248 memcpy(this->payload_virt, buf, mtd->writesize); in gpmi_ecc_write_page()
1266 buf, mtd->writesize, in gpmi_ecc_write_page()
1276 chip->oob_poi, mtd->oobsize, in gpmi_ecc_write_page()
1292 send_page_end(this, chip->oob_poi, mtd->oobsize, in gpmi_ecc_write_page()
1297 send_page_end(this, buf, mtd->writesize, in gpmi_ecc_write_page()
1366 static int gpmi_ecc_read_oob(struct mtd_info *mtd, struct nand_chip *chip, in gpmi_ecc_read_oob() argument
1373 memset(chip->oob_poi, ~0, mtd->oobsize); in gpmi_ecc_read_oob()
1376 chip->cmdfunc(mtd, NAND_CMD_READ0, mtd->writesize, page); in gpmi_ecc_read_oob()
1377 chip->read_buf(mtd, chip->oob_poi, mtd->oobsize); in gpmi_ecc_read_oob()
1386 chip->cmdfunc(mtd, NAND_CMD_READ0, 0, page); in gpmi_ecc_read_oob()
1387 chip->oob_poi[0] = chip->read_byte(mtd); in gpmi_ecc_read_oob()
1394 gpmi_ecc_write_oob(struct mtd_info *mtd, struct nand_chip *chip, int page) in gpmi_ecc_write_oob() argument
1396 struct nand_oobfree *of = mtd->ecclayout->oobfree; in gpmi_ecc_write_oob()
1406 chip->cmdfunc(mtd, NAND_CMD_SEQIN, mtd->writesize + of->offset, page); in gpmi_ecc_write_oob()
1407 chip->write_buf(mtd, chip->oob_poi + of->offset, of->length); in gpmi_ecc_write_oob()
1408 chip->cmdfunc(mtd, NAND_CMD_PAGEPROG, -1, -1); in gpmi_ecc_write_oob()
1410 status = chip->waitfunc(mtd, chip); in gpmi_ecc_write_oob()
1426 static int gpmi_ecc_read_page_raw(struct mtd_info *mtd, in gpmi_ecc_read_page_raw() argument
1441 chip->read_buf(mtd, tmp_buf, in gpmi_ecc_read_page_raw()
1442 mtd->writesize + mtd->oobsize); in gpmi_ecc_read_page_raw()
1454 tmp_buf[0] = tmp_buf[mtd->writesize]; in gpmi_ecc_read_page_raw()
1455 tmp_buf[mtd->writesize] = swap; in gpmi_ecc_read_page_raw()
1493 if (oob_byte_off < mtd->oobsize) in gpmi_ecc_read_page_raw()
1495 tmp_buf + mtd->writesize + oob_byte_off, in gpmi_ecc_read_page_raw()
1496 mtd->oobsize - oob_byte_off); in gpmi_ecc_read_page_raw()
1514 static int gpmi_ecc_write_page_raw(struct mtd_info *mtd, in gpmi_ecc_write_page_raw() argument
1536 memset(tmp_buf, 0xff, mtd->writesize + mtd->oobsize); in gpmi_ecc_write_page_raw()
1568 if (oob_required && oob_byte_off < mtd->oobsize) in gpmi_ecc_write_page_raw()
1569 memcpy(tmp_buf + mtd->writesize + oob_byte_off, in gpmi_ecc_write_page_raw()
1570 oob + oob_byte_off, mtd->oobsize - oob_byte_off); in gpmi_ecc_write_page_raw()
1582 tmp_buf[0] = tmp_buf[mtd->writesize]; in gpmi_ecc_write_page_raw()
1583 tmp_buf[mtd->writesize] = swap; in gpmi_ecc_write_page_raw()
1586 chip->write_buf(mtd, tmp_buf, mtd->writesize + mtd->oobsize); in gpmi_ecc_write_page_raw()
1591 static int gpmi_ecc_read_oob_raw(struct mtd_info *mtd, struct nand_chip *chip, in gpmi_ecc_read_oob_raw() argument
1594 chip->cmdfunc(mtd, NAND_CMD_READ0, 0, page); in gpmi_ecc_read_oob_raw()
1596 return gpmi_ecc_read_page_raw(mtd, chip, NULL, 1, page); in gpmi_ecc_read_oob_raw()
1599 static int gpmi_ecc_write_oob_raw(struct mtd_info *mtd, struct nand_chip *chip, in gpmi_ecc_write_oob_raw() argument
1602 chip->cmdfunc(mtd, NAND_CMD_SEQIN, 0, page); in gpmi_ecc_write_oob_raw()
1604 return gpmi_ecc_write_page_raw(mtd, chip, NULL, 1, page); in gpmi_ecc_write_oob_raw()
1607 static int gpmi_block_markbad(struct mtd_info *mtd, loff_t ofs) in gpmi_block_markbad() argument
1609 struct nand_chip *chip = mtd->priv; in gpmi_block_markbad()
1616 chip->select_chip(mtd, chipnr); in gpmi_block_markbad()
1618 column = !GPMI_IS_MX23(this) ? mtd->writesize : 0; in gpmi_block_markbad()
1627 chip->cmdfunc(mtd, NAND_CMD_SEQIN, column, page); in gpmi_block_markbad()
1628 chip->write_buf(mtd, block_mark, 1); in gpmi_block_markbad()
1629 chip->cmdfunc(mtd, NAND_CMD_PAGEPROG, -1, -1); in gpmi_block_markbad()
1631 status = chip->waitfunc(mtd, chip); in gpmi_block_markbad()
1635 chip->select_chip(mtd, -1); in gpmi_block_markbad()
1671 struct mtd_info *mtd = &this->mtd; in mx23_check_transcription_stamp() local
1684 chip->select_chip(mtd, 0); in mx23_check_transcription_stamp()
1701 chip->cmdfunc(mtd, NAND_CMD_READ0, 12, page); in mx23_check_transcription_stamp()
1702 chip->read_buf(mtd, buffer, strlen(fingerprint)); in mx23_check_transcription_stamp()
1712 chip->select_chip(mtd, saved_chip_number); in mx23_check_transcription_stamp()
1726 struct mtd_info *mtd = &this->mtd; in mx23_write_transcription_stamp() local
1740 block_size_in_pages = mtd->erasesize / mtd->writesize; in mx23_write_transcription_stamp()
1755 chip->select_chip(mtd, 0); in mx23_write_transcription_stamp()
1766 chip->cmdfunc(mtd, NAND_CMD_ERASE1, -1, page); in mx23_write_transcription_stamp()
1767 chip->cmdfunc(mtd, NAND_CMD_ERASE2, -1, -1); in mx23_write_transcription_stamp()
1770 status = chip->waitfunc(mtd, chip); in mx23_write_transcription_stamp()
1776 memset(buffer, ~0, mtd->writesize); in mx23_write_transcription_stamp()
1787 chip->cmdfunc(mtd, NAND_CMD_SEQIN, 0x00, page); in mx23_write_transcription_stamp()
1788 chip->ecc.write_page_raw(mtd, chip, buffer, 0, page); in mx23_write_transcription_stamp()
1789 chip->cmdfunc(mtd, NAND_CMD_PAGEPROG, -1, -1); in mx23_write_transcription_stamp()
1792 status = chip->waitfunc(mtd, chip); in mx23_write_transcription_stamp()
1798 chip->select_chip(mtd, saved_chip_number); in mx23_write_transcription_stamp()
1806 struct mtd_info *mtd = &this->mtd; in mx23_boot_init() local
1847 chip->select_chip(mtd, chipnr); in mx23_boot_init()
1848 chip->cmdfunc(mtd, NAND_CMD_READ0, mtd->writesize, page); in mx23_boot_init()
1849 block_mark = chip->read_byte(mtd); in mx23_boot_init()
1850 chip->select_chip(mtd, -1); in mx23_boot_init()
1859 ret = chip->block_markbad(mtd, byte); in mx23_boot_init()
1902 nand_release(&this->mtd); in gpmi_nand_exit()
1908 struct mtd_info *mtd = &this->mtd; in gpmi_init_last() local
1909 struct nand_chip *chip = mtd->priv; in gpmi_init_last()
1957 struct mtd_info *mtd = &this->mtd; in gpmi_nand_init() local
1966 mtd->priv = chip; in gpmi_nand_init()
1967 mtd->name = "gpmi-nand"; in gpmi_nand_init()
1968 mtd->dev.parent = this->dev; in gpmi_nand_init()
2005 ret = nand_scan_ident(mtd, GPMI_IS_MX6(this) ? 2 : 1, NULL); in gpmi_nand_init()
2014 ret = nand_scan_tail(mtd); in gpmi_nand_init()
2021 ret = chip->scan_bbt(mtd); in gpmi_nand_init()
2026 ret = mtd_device_parse_register(mtd, NULL, &ppdata, NULL, 0); in gpmi_nand_init()