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
1043 mtd->ecc_stats.failed++; in gpmi_ecc_read_page()
1046 mtd->ecc_stats.corrected += *status; in gpmi_ecc_read_page()
1061 memset(chip->oob_poi, ~0, mtd->oobsize); in gpmi_ecc_read_page()
1074 static int gpmi_ecc_read_subpage(struct mtd_info *mtd, struct nand_chip *chip, in gpmi_ecc_read_subpage() argument
1110 return gpmi_ecc_read_page(mtd, chip, buf, 0, page); in gpmi_ecc_read_subpage()
1117 chip->cmdfunc(mtd, NAND_CMD_RNDOUT, col, -1); in gpmi_ecc_read_subpage()
1151 max_bitflips = gpmi_ecc_read_page(mtd, chip, buf, 0, page); in gpmi_ecc_read_subpage()
1162 static int gpmi_ecc_write_page(struct mtd_info *mtd, struct nand_chip *chip, in gpmi_ecc_write_page() argument
1180 memcpy(this->payload_virt, buf, mtd->writesize); in gpmi_ecc_write_page()
1198 buf, mtd->writesize, in gpmi_ecc_write_page()
1208 chip->oob_poi, mtd->oobsize, in gpmi_ecc_write_page()
1224 send_page_end(this, chip->oob_poi, mtd->oobsize, in gpmi_ecc_write_page()
1229 send_page_end(this, buf, mtd->writesize, in gpmi_ecc_write_page()
1298 static int gpmi_ecc_read_oob(struct mtd_info *mtd, struct nand_chip *chip, in gpmi_ecc_read_oob() argument
1305 memset(chip->oob_poi, ~0, mtd->oobsize); in gpmi_ecc_read_oob()
1308 chip->cmdfunc(mtd, NAND_CMD_READ0, mtd->writesize, page); in gpmi_ecc_read_oob()
1309 chip->read_buf(mtd, chip->oob_poi, mtd->oobsize); in gpmi_ecc_read_oob()
1318 chip->cmdfunc(mtd, NAND_CMD_READ0, 0, page); in gpmi_ecc_read_oob()
1319 chip->oob_poi[0] = chip->read_byte(mtd); in gpmi_ecc_read_oob()
1326 gpmi_ecc_write_oob(struct mtd_info *mtd, struct nand_chip *chip, int page) in gpmi_ecc_write_oob() argument
1328 struct nand_oobfree *of = mtd->ecclayout->oobfree; in gpmi_ecc_write_oob()
1338 chip->cmdfunc(mtd, NAND_CMD_SEQIN, mtd->writesize + of->offset, page); in gpmi_ecc_write_oob()
1339 chip->write_buf(mtd, chip->oob_poi + of->offset, of->length); in gpmi_ecc_write_oob()
1340 chip->cmdfunc(mtd, NAND_CMD_PAGEPROG, -1, -1); in gpmi_ecc_write_oob()
1342 status = chip->waitfunc(mtd, chip); in gpmi_ecc_write_oob()
1358 static int gpmi_ecc_read_page_raw(struct mtd_info *mtd, in gpmi_ecc_read_page_raw() argument
1373 chip->read_buf(mtd, tmp_buf, in gpmi_ecc_read_page_raw()
1374 mtd->writesize + mtd->oobsize); in gpmi_ecc_read_page_raw()
1386 tmp_buf[0] = tmp_buf[mtd->writesize]; in gpmi_ecc_read_page_raw()
1387 tmp_buf[mtd->writesize] = swap; in gpmi_ecc_read_page_raw()
1425 if (oob_byte_off < mtd->oobsize) in gpmi_ecc_read_page_raw()
1427 tmp_buf + mtd->writesize + oob_byte_off, in gpmi_ecc_read_page_raw()
1428 mtd->oobsize - oob_byte_off); in gpmi_ecc_read_page_raw()
1446 static int gpmi_ecc_write_page_raw(struct mtd_info *mtd, in gpmi_ecc_write_page_raw() argument
1468 memset(tmp_buf, 0xff, mtd->writesize + mtd->oobsize); in gpmi_ecc_write_page_raw()
1500 if (oob_required && oob_byte_off < mtd->oobsize) in gpmi_ecc_write_page_raw()
1501 memcpy(tmp_buf + mtd->writesize + oob_byte_off, in gpmi_ecc_write_page_raw()
1502 oob + oob_byte_off, mtd->oobsize - oob_byte_off); in gpmi_ecc_write_page_raw()
1514 tmp_buf[0] = tmp_buf[mtd->writesize]; in gpmi_ecc_write_page_raw()
1515 tmp_buf[mtd->writesize] = swap; in gpmi_ecc_write_page_raw()
1518 chip->write_buf(mtd, tmp_buf, mtd->writesize + mtd->oobsize); in gpmi_ecc_write_page_raw()
1523 static int gpmi_ecc_read_oob_raw(struct mtd_info *mtd, struct nand_chip *chip, in gpmi_ecc_read_oob_raw() argument
1526 chip->cmdfunc(mtd, NAND_CMD_READ0, 0, page); in gpmi_ecc_read_oob_raw()
1528 return gpmi_ecc_read_page_raw(mtd, chip, NULL, 1, page); in gpmi_ecc_read_oob_raw()
1531 static int gpmi_ecc_write_oob_raw(struct mtd_info *mtd, struct nand_chip *chip, in gpmi_ecc_write_oob_raw() argument
1534 chip->cmdfunc(mtd, NAND_CMD_SEQIN, 0, page); in gpmi_ecc_write_oob_raw()
1536 return gpmi_ecc_write_page_raw(mtd, chip, NULL, 1); in gpmi_ecc_write_oob_raw()
1539 static int gpmi_block_markbad(struct mtd_info *mtd, loff_t ofs) in gpmi_block_markbad() argument
1541 struct nand_chip *chip = mtd->priv; in gpmi_block_markbad()
1548 chip->select_chip(mtd, chipnr); in gpmi_block_markbad()
1550 column = !GPMI_IS_MX23(this) ? mtd->writesize : 0; in gpmi_block_markbad()
1559 chip->cmdfunc(mtd, NAND_CMD_SEQIN, column, page); in gpmi_block_markbad()
1560 chip->write_buf(mtd, block_mark, 1); in gpmi_block_markbad()
1561 chip->cmdfunc(mtd, NAND_CMD_PAGEPROG, -1, -1); in gpmi_block_markbad()
1563 status = chip->waitfunc(mtd, chip); in gpmi_block_markbad()
1567 chip->select_chip(mtd, -1); in gpmi_block_markbad()
1603 struct mtd_info *mtd = &this->mtd; in mx23_check_transcription_stamp() local
1616 chip->select_chip(mtd, 0); in mx23_check_transcription_stamp()
1633 chip->cmdfunc(mtd, NAND_CMD_READ0, 12, page); in mx23_check_transcription_stamp()
1634 chip->read_buf(mtd, buffer, strlen(fingerprint)); in mx23_check_transcription_stamp()
1644 chip->select_chip(mtd, saved_chip_number); in mx23_check_transcription_stamp()
1658 struct mtd_info *mtd = &this->mtd; in mx23_write_transcription_stamp() local
1672 block_size_in_pages = mtd->erasesize / mtd->writesize; in mx23_write_transcription_stamp()
1687 chip->select_chip(mtd, 0); in mx23_write_transcription_stamp()
1698 chip->cmdfunc(mtd, NAND_CMD_ERASE1, -1, page); in mx23_write_transcription_stamp()
1699 chip->cmdfunc(mtd, NAND_CMD_ERASE2, -1, -1); in mx23_write_transcription_stamp()
1702 status = chip->waitfunc(mtd, chip); in mx23_write_transcription_stamp()
1708 memset(buffer, ~0, mtd->writesize); in mx23_write_transcription_stamp()
1719 chip->cmdfunc(mtd, NAND_CMD_SEQIN, 0x00, page); in mx23_write_transcription_stamp()
1720 chip->ecc.write_page_raw(mtd, chip, buffer, 0); in mx23_write_transcription_stamp()
1721 chip->cmdfunc(mtd, NAND_CMD_PAGEPROG, -1, -1); in mx23_write_transcription_stamp()
1724 status = chip->waitfunc(mtd, chip); in mx23_write_transcription_stamp()
1730 chip->select_chip(mtd, saved_chip_number); in mx23_write_transcription_stamp()
1738 struct mtd_info *mtd = &this->mtd; in mx23_boot_init() local
1779 chip->select_chip(mtd, chipnr); in mx23_boot_init()
1780 chip->cmdfunc(mtd, NAND_CMD_READ0, mtd->writesize, page); in mx23_boot_init()
1781 block_mark = chip->read_byte(mtd); in mx23_boot_init()
1782 chip->select_chip(mtd, -1); in mx23_boot_init()
1791 ret = chip->block_markbad(mtd, byte); in mx23_boot_init()
1834 nand_release(&this->mtd); in gpmi_nand_exit()
1840 struct mtd_info *mtd = &this->mtd; in gpmi_init_last() local
1841 struct nand_chip *chip = mtd->priv; in gpmi_init_last()
1889 struct mtd_info *mtd = &this->mtd; in gpmi_nand_init() local
1898 mtd->priv = chip; in gpmi_nand_init()
1899 mtd->name = "gpmi-nand"; in gpmi_nand_init()
1900 mtd->owner = THIS_MODULE; in gpmi_nand_init()
1937 ret = nand_scan_ident(mtd, GPMI_IS_MX6(this) ? 2 : 1, NULL); in gpmi_nand_init()
1946 ret = nand_scan_tail(mtd); in gpmi_nand_init()
1953 ret = chip->scan_bbt(mtd); in gpmi_nand_init()
1958 ret = mtd_device_parse_register(mtd, NULL, &ppdata, NULL, 0); in gpmi_nand_init()