docg3             412 arch/arm/mach-pxa/mioa701.c static struct platform_device docg3 = {
docg3             689 arch/arm/mach-pxa/mioa701.c 	&docg3,
docg3              92 drivers/mtd/devices/docg3.c static inline u8 doc_readb(struct docg3 *docg3, u16 reg)
docg3              94 drivers/mtd/devices/docg3.c 	u8 val = readb(docg3->cascade->base + reg);
docg3             100 drivers/mtd/devices/docg3.c static inline u16 doc_readw(struct docg3 *docg3, u16 reg)
docg3             102 drivers/mtd/devices/docg3.c 	u16 val = readw(docg3->cascade->base + reg);
docg3             108 drivers/mtd/devices/docg3.c static inline void doc_writeb(struct docg3 *docg3, u8 val, u16 reg)
docg3             110 drivers/mtd/devices/docg3.c 	writeb(val, docg3->cascade->base + reg);
docg3             114 drivers/mtd/devices/docg3.c static inline void doc_writew(struct docg3 *docg3, u16 val, u16 reg)
docg3             116 drivers/mtd/devices/docg3.c 	writew(val, docg3->cascade->base + reg);
docg3             120 drivers/mtd/devices/docg3.c static inline void doc_flash_command(struct docg3 *docg3, u8 cmd)
docg3             122 drivers/mtd/devices/docg3.c 	doc_writeb(docg3, cmd, DOC_FLASHCOMMAND);
docg3             125 drivers/mtd/devices/docg3.c static inline void doc_flash_sequence(struct docg3 *docg3, u8 seq)
docg3             127 drivers/mtd/devices/docg3.c 	doc_writeb(docg3, seq, DOC_FLASHSEQUENCE);
docg3             130 drivers/mtd/devices/docg3.c static inline void doc_flash_address(struct docg3 *docg3, u8 addr)
docg3             132 drivers/mtd/devices/docg3.c 	doc_writeb(docg3, addr, DOC_FLASHADDRESS);
docg3             137 drivers/mtd/devices/docg3.c static int doc_register_readb(struct docg3 *docg3, int reg)
docg3             141 drivers/mtd/devices/docg3.c 	doc_writew(docg3, reg, DOC_READADDRESS);
docg3             142 drivers/mtd/devices/docg3.c 	val = doc_readb(docg3, reg);
docg3             147 drivers/mtd/devices/docg3.c static int doc_register_readw(struct docg3 *docg3, int reg)
docg3             151 drivers/mtd/devices/docg3.c 	doc_writew(docg3, reg, DOC_READADDRESS);
docg3             152 drivers/mtd/devices/docg3.c 	val = doc_readw(docg3, reg);
docg3             168 drivers/mtd/devices/docg3.c static void doc_delay(struct docg3 *docg3, int nbNOPs)
docg3             174 drivers/mtd/devices/docg3.c 		doc_writeb(docg3, 0, DOC_NOP);
docg3             177 drivers/mtd/devices/docg3.c static int is_prot_seq_error(struct docg3 *docg3)
docg3             181 drivers/mtd/devices/docg3.c 	ctrl = doc_register_readb(docg3, DOC_FLASHCONTROL);
docg3             185 drivers/mtd/devices/docg3.c static int doc_is_ready(struct docg3 *docg3)
docg3             189 drivers/mtd/devices/docg3.c 	ctrl = doc_register_readb(docg3, DOC_FLASHCONTROL);
docg3             193 drivers/mtd/devices/docg3.c static int doc_wait_ready(struct docg3 *docg3)
docg3             198 drivers/mtd/devices/docg3.c 		doc_delay(docg3, 4);
docg3             200 drivers/mtd/devices/docg3.c 	} while (!doc_is_ready(docg3) && maxWaitCycles--);
docg3             201 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 2);
docg3             208 drivers/mtd/devices/docg3.c static int doc_reset_seq(struct docg3 *docg3)
docg3             212 drivers/mtd/devices/docg3.c 	doc_writeb(docg3, 0x10, DOC_FLASHCONTROL);
docg3             213 drivers/mtd/devices/docg3.c 	doc_flash_sequence(docg3, DOC_SEQ_RESET);
docg3             214 drivers/mtd/devices/docg3.c 	doc_flash_command(docg3, DOC_CMD_RESET);
docg3             215 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 2);
docg3             216 drivers/mtd/devices/docg3.c 	ret = doc_wait_ready(docg3);
docg3             231 drivers/mtd/devices/docg3.c static void doc_read_data_area(struct docg3 *docg3, void *buf, int len,
docg3             243 drivers/mtd/devices/docg3.c 		doc_writew(docg3, DOC_IOSPACE_DATA, DOC_READADDRESS);
docg3             246 drivers/mtd/devices/docg3.c 		data16 = doc_readw(docg3, DOC_IOSPACE_DATA);
docg3             254 drivers/mtd/devices/docg3.c 		doc_writew(docg3, DOC_IOSPACE_DATA | DOC_READADDR_ONE_BYTE,
docg3             256 drivers/mtd/devices/docg3.c 		doc_delay(docg3, 1);
docg3             259 drivers/mtd/devices/docg3.c 			data8 = doc_readb(docg3, DOC_IOSPACE_DATA);
docg3             276 drivers/mtd/devices/docg3.c static void doc_write_data_area(struct docg3 *docg3, const void *buf, int len)
docg3             286 drivers/mtd/devices/docg3.c 	doc_writew(docg3, DOC_IOSPACE_DATA, DOC_READADDRESS);
docg3             289 drivers/mtd/devices/docg3.c 		doc_writew(docg3, *src16, DOC_IOSPACE_DATA);
docg3             295 drivers/mtd/devices/docg3.c 		doc_writew(docg3, DOC_IOSPACE_DATA | DOC_READADDR_ONE_BYTE,
docg3             297 drivers/mtd/devices/docg3.c 		doc_writeb(docg3, *src8, DOC_IOSPACE_DATA);
docg3             317 drivers/mtd/devices/docg3.c static void doc_set_reliable_mode(struct docg3 *docg3)
docg3             321 drivers/mtd/devices/docg3.c 	doc_dbg("doc_set_reliable_mode(%s)\n", strmode[docg3->reliable]);
docg3             322 drivers/mtd/devices/docg3.c 	switch (docg3->reliable) {
docg3             326 drivers/mtd/devices/docg3.c 		doc_flash_sequence(docg3, DOC_SEQ_SET_FASTMODE);
docg3             327 drivers/mtd/devices/docg3.c 		doc_flash_command(docg3, DOC_CMD_FAST_MODE);
docg3             330 drivers/mtd/devices/docg3.c 		doc_flash_sequence(docg3, DOC_SEQ_SET_RELIABLEMODE);
docg3             331 drivers/mtd/devices/docg3.c 		doc_flash_command(docg3, DOC_CMD_FAST_MODE);
docg3             332 drivers/mtd/devices/docg3.c 		doc_flash_command(docg3, DOC_CMD_RELIABLE_MODE);
docg3             338 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 2);
docg3             351 drivers/mtd/devices/docg3.c static void doc_set_asic_mode(struct docg3 *docg3, u8 mode)
docg3             356 drivers/mtd/devices/docg3.c 		doc_readb(docg3, DOC_IOSPACE_IPL);
docg3             360 drivers/mtd/devices/docg3.c 	doc_writeb(docg3, mode, DOC_ASICMODE);
docg3             361 drivers/mtd/devices/docg3.c 	doc_writeb(docg3, ~mode, DOC_ASICMODECONFIRM);
docg3             362 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 1);
docg3             373 drivers/mtd/devices/docg3.c static void doc_set_device_id(struct docg3 *docg3, int id)
docg3             378 drivers/mtd/devices/docg3.c 	doc_writeb(docg3, id, DOC_DEVICESELECT);
docg3             379 drivers/mtd/devices/docg3.c 	ctrl = doc_register_readb(docg3, DOC_FLASHCONTROL);
docg3             383 drivers/mtd/devices/docg3.c 	doc_writeb(docg3, ctrl, DOC_FLASHCONTROL);
docg3             397 drivers/mtd/devices/docg3.c static int doc_set_extra_page_mode(struct docg3 *docg3)
docg3             402 drivers/mtd/devices/docg3.c 	doc_flash_sequence(docg3, DOC_SEQ_PAGE_SIZE_532);
docg3             403 drivers/mtd/devices/docg3.c 	doc_flash_command(docg3, DOC_CMD_PAGE_SIZE_532);
docg3             404 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 2);
docg3             406 drivers/mtd/devices/docg3.c 	fctrl = doc_register_readb(docg3, DOC_FLASHCONTROL);
docg3             418 drivers/mtd/devices/docg3.c static void doc_setup_addr_sector(struct docg3 *docg3, int sector)
docg3             420 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 1);
docg3             421 drivers/mtd/devices/docg3.c 	doc_flash_address(docg3, sector & 0xff);
docg3             422 drivers/mtd/devices/docg3.c 	doc_flash_address(docg3, (sector >> 8) & 0xff);
docg3             423 drivers/mtd/devices/docg3.c 	doc_flash_address(docg3, (sector >> 16) & 0xff);
docg3             424 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 1);
docg3             433 drivers/mtd/devices/docg3.c static void doc_setup_writeaddr_sector(struct docg3 *docg3, int sector, int ofs)
docg3             436 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 1);
docg3             437 drivers/mtd/devices/docg3.c 	doc_flash_address(docg3, ofs & 0xff);
docg3             438 drivers/mtd/devices/docg3.c 	doc_flash_address(docg3, sector & 0xff);
docg3             439 drivers/mtd/devices/docg3.c 	doc_flash_address(docg3, (sector >> 8) & 0xff);
docg3             440 drivers/mtd/devices/docg3.c 	doc_flash_address(docg3, (sector >> 16) & 0xff);
docg3             441 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 1);
docg3             456 drivers/mtd/devices/docg3.c static int doc_read_seek(struct docg3 *docg3, int block0, int block1, int page,
docg3             465 drivers/mtd/devices/docg3.c 		doc_flash_sequence(docg3, DOC_SEQ_SET_PLANE1);
docg3             466 drivers/mtd/devices/docg3.c 		doc_flash_command(docg3, DOC_CMD_READ_PLANE1);
docg3             467 drivers/mtd/devices/docg3.c 		doc_delay(docg3, 2);
docg3             469 drivers/mtd/devices/docg3.c 		doc_flash_sequence(docg3, DOC_SEQ_SET_PLANE2);
docg3             470 drivers/mtd/devices/docg3.c 		doc_flash_command(docg3, DOC_CMD_READ_PLANE2);
docg3             471 drivers/mtd/devices/docg3.c 		doc_delay(docg3, 2);
docg3             474 drivers/mtd/devices/docg3.c 	doc_set_reliable_mode(docg3);
docg3             476 drivers/mtd/devices/docg3.c 		ret = doc_set_extra_page_mode(docg3);
docg3             480 drivers/mtd/devices/docg3.c 	doc_flash_sequence(docg3, DOC_SEQ_READ);
docg3             482 drivers/mtd/devices/docg3.c 	doc_flash_command(docg3, DOC_CMD_PROG_BLOCK_ADDR);
docg3             483 drivers/mtd/devices/docg3.c 	doc_setup_addr_sector(docg3, sector);
docg3             486 drivers/mtd/devices/docg3.c 	doc_flash_command(docg3, DOC_CMD_PROG_BLOCK_ADDR);
docg3             487 drivers/mtd/devices/docg3.c 	doc_setup_addr_sector(docg3, sector);
docg3             488 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 1);
docg3             505 drivers/mtd/devices/docg3.c static int doc_write_seek(struct docg3 *docg3, int block0, int block1, int page,
docg3             513 drivers/mtd/devices/docg3.c 	doc_set_reliable_mode(docg3);
docg3             516 drivers/mtd/devices/docg3.c 		doc_flash_sequence(docg3, DOC_SEQ_SET_PLANE1);
docg3             517 drivers/mtd/devices/docg3.c 		doc_flash_command(docg3, DOC_CMD_READ_PLANE1);
docg3             518 drivers/mtd/devices/docg3.c 		doc_delay(docg3, 2);
docg3             520 drivers/mtd/devices/docg3.c 		doc_flash_sequence(docg3, DOC_SEQ_SET_PLANE2);
docg3             521 drivers/mtd/devices/docg3.c 		doc_flash_command(docg3, DOC_CMD_READ_PLANE2);
docg3             522 drivers/mtd/devices/docg3.c 		doc_delay(docg3, 2);
docg3             525 drivers/mtd/devices/docg3.c 	doc_flash_sequence(docg3, DOC_SEQ_PAGE_SETUP);
docg3             526 drivers/mtd/devices/docg3.c 	doc_flash_command(docg3, DOC_CMD_PROG_CYCLE1);
docg3             529 drivers/mtd/devices/docg3.c 	doc_setup_writeaddr_sector(docg3, sector, ofs);
docg3             531 drivers/mtd/devices/docg3.c 	doc_flash_command(docg3, DOC_CMD_PROG_CYCLE3);
docg3             532 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 2);
docg3             533 drivers/mtd/devices/docg3.c 	ret = doc_wait_ready(docg3);
docg3             537 drivers/mtd/devices/docg3.c 	doc_flash_command(docg3, DOC_CMD_PROG_CYCLE1);
docg3             539 drivers/mtd/devices/docg3.c 	doc_setup_writeaddr_sector(docg3, sector, ofs);
docg3             540 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 1);
docg3             557 drivers/mtd/devices/docg3.c static int doc_read_page_ecc_init(struct docg3 *docg3, int len)
docg3             559 drivers/mtd/devices/docg3.c 	doc_writew(docg3, DOC_ECCCONF0_READ_MODE
docg3             563 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 4);
docg3             564 drivers/mtd/devices/docg3.c 	doc_register_readb(docg3, DOC_FLASHCONTROL);
docg3             565 drivers/mtd/devices/docg3.c 	return doc_wait_ready(docg3);
docg3             578 drivers/mtd/devices/docg3.c static int doc_write_page_ecc_init(struct docg3 *docg3, int len)
docg3             580 drivers/mtd/devices/docg3.c 	doc_writew(docg3, DOC_ECCCONF0_WRITE_MODE
docg3             584 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 4);
docg3             585 drivers/mtd/devices/docg3.c 	doc_register_readb(docg3, DOC_FLASHCONTROL);
docg3             586 drivers/mtd/devices/docg3.c 	return doc_wait_ready(docg3);
docg3             596 drivers/mtd/devices/docg3.c static void doc_ecc_disable(struct docg3 *docg3)
docg3             598 drivers/mtd/devices/docg3.c 	doc_writew(docg3, DOC_ECCCONF0_READ_MODE, DOC_ECCCONF0);
docg3             599 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 4);
docg3             610 drivers/mtd/devices/docg3.c static void doc_hamming_ecc_init(struct docg3 *docg3, int nb_bytes)
docg3             614 drivers/mtd/devices/docg3.c 	ecc_conf1 = doc_register_readb(docg3, DOC_ECCCONF1);
docg3             617 drivers/mtd/devices/docg3.c 	doc_writeb(docg3, ecc_conf1, DOC_ECCCONF1);
docg3             643 drivers/mtd/devices/docg3.c static int doc_ecc_bch_fix_data(struct docg3 *docg3, void *buf, u8 *hwecc)
docg3             650 drivers/mtd/devices/docg3.c 	numerrs = decode_bch(docg3->cascade->bch, NULL,
docg3             695 drivers/mtd/devices/docg3.c static int doc_read_page_prepare(struct docg3 *docg3, int block0, int block1,
docg3             707 drivers/mtd/devices/docg3.c 	doc_set_device_id(docg3, docg3->device_id);
docg3             708 drivers/mtd/devices/docg3.c 	ret = doc_reset_seq(docg3);
docg3             713 drivers/mtd/devices/docg3.c 	ret = doc_read_seek(docg3, block0, block1, page, wear_area, offset);
docg3             717 drivers/mtd/devices/docg3.c 	doc_flash_command(docg3, DOC_CMD_READ_ALL_PLANES);
docg3             718 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 2);
docg3             719 drivers/mtd/devices/docg3.c 	doc_wait_ready(docg3);
docg3             721 drivers/mtd/devices/docg3.c 	doc_flash_command(docg3, DOC_CMD_SET_ADDR_READ);
docg3             722 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 1);
docg3             725 drivers/mtd/devices/docg3.c 	doc_flash_address(docg3, offset >> 2);
docg3             726 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 1);
docg3             727 drivers/mtd/devices/docg3.c 	doc_wait_ready(docg3);
docg3             729 drivers/mtd/devices/docg3.c 	doc_flash_command(docg3, DOC_CMD_READ_FLASH);
docg3             733 drivers/mtd/devices/docg3.c 	doc_writeb(docg3, 0, DOC_DATAEND);
docg3             734 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 2);
docg3             753 drivers/mtd/devices/docg3.c static int doc_read_page_getbytes(struct docg3 *docg3, int len, u_char *buf,
docg3             757 drivers/mtd/devices/docg3.c 		doc_read_data_area(docg3, buf, 1, first);
docg3             758 drivers/mtd/devices/docg3.c 		doc_read_data_area(docg3, buf ? buf + 1 : buf, len - 1, 0);
docg3             760 drivers/mtd/devices/docg3.c 		doc_read_data_area(docg3, buf, len, first);
docg3             762 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 2);
docg3             773 drivers/mtd/devices/docg3.c static void doc_write_page_putbytes(struct docg3 *docg3, int len,
docg3             776 drivers/mtd/devices/docg3.c 	doc_write_data_area(docg3, buf, len);
docg3             777 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 2);
docg3             785 drivers/mtd/devices/docg3.c static void doc_get_bch_hw_ecc(struct docg3 *docg3, u8 *hwecc)
docg3             790 drivers/mtd/devices/docg3.c 		hwecc[i] = doc_register_readb(docg3, DOC_BCH_HW_ECC(i));
docg3             797 drivers/mtd/devices/docg3.c static void doc_page_finish(struct docg3 *docg3)
docg3             799 drivers/mtd/devices/docg3.c 	doc_writeb(docg3, 0, DOC_DATAEND);
docg3             800 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 2);
docg3             811 drivers/mtd/devices/docg3.c static void doc_read_page_finish(struct docg3 *docg3)
docg3             813 drivers/mtd/devices/docg3.c 	doc_page_finish(docg3);
docg3             814 drivers/mtd/devices/docg3.c 	doc_set_device_id(docg3, 0);
docg3             868 drivers/mtd/devices/docg3.c 	struct docg3 *docg3 = mtd->priv;
docg3             897 drivers/mtd/devices/docg3.c 	mutex_lock(&docg3->cascade->lock);
docg3             900 drivers/mtd/devices/docg3.c 			docg3->reliable);
docg3             903 drivers/mtd/devices/docg3.c 		ret = doc_read_page_prepare(docg3, block0, block1, page, ofs);
docg3             906 drivers/mtd/devices/docg3.c 		ret = doc_read_page_ecc_init(docg3, DOC_ECC_BCH_TOTAL_BYTES);
docg3             909 drivers/mtd/devices/docg3.c 		ret = doc_read_page_getbytes(docg3, skip, NULL, 1, 0);
docg3             912 drivers/mtd/devices/docg3.c 		ret = doc_read_page_getbytes(docg3, nbdata, buf, 0, skip % 2);
docg3             915 drivers/mtd/devices/docg3.c 		doc_read_page_getbytes(docg3,
docg3             918 drivers/mtd/devices/docg3.c 		ret = doc_read_page_getbytes(docg3, nboob, oobbuf, 0, 0);
docg3             921 drivers/mtd/devices/docg3.c 		doc_read_page_getbytes(docg3, DOC_LAYOUT_OOB_SIZE - nboob,
docg3             924 drivers/mtd/devices/docg3.c 		doc_get_bch_hw_ecc(docg3, hwecc);
docg3             925 drivers/mtd/devices/docg3.c 		eccconf1 = doc_register_readb(docg3, DOC_ECCCONF1);
docg3             937 drivers/mtd/devices/docg3.c 		if (is_prot_seq_error(docg3))
docg3             945 drivers/mtd/devices/docg3.c 			ret = doc_ecc_bch_fix_data(docg3, buf, hwecc);
docg3             957 drivers/mtd/devices/docg3.c 		doc_read_page_finish(docg3);
docg3             969 drivers/mtd/devices/docg3.c 	mutex_unlock(&docg3->cascade->lock);
docg3             972 drivers/mtd/devices/docg3.c 	doc_read_page_finish(docg3);
docg3             976 drivers/mtd/devices/docg3.c static int doc_reload_bbt(struct docg3 *docg3)
docg3             980 drivers/mtd/devices/docg3.c 	u_char *buf = docg3->bbt;
docg3             982 drivers/mtd/devices/docg3.c 	nbpages = DIV_ROUND_UP(docg3->max_block + 1, 8 * DOC_LAYOUT_PAGE_SIZE);
docg3             984 drivers/mtd/devices/docg3.c 		ret = doc_read_page_prepare(docg3, block, block + 1,
docg3             987 drivers/mtd/devices/docg3.c 			ret = doc_read_page_ecc_init(docg3,
docg3             990 drivers/mtd/devices/docg3.c 			doc_read_page_getbytes(docg3, DOC_LAYOUT_PAGE_SIZE,
docg3             994 drivers/mtd/devices/docg3.c 	doc_read_page_finish(docg3);
docg3            1007 drivers/mtd/devices/docg3.c 	struct docg3 *docg3 = mtd->priv;
docg3            1011 drivers/mtd/devices/docg3.c 		docg3->reliable);
docg3            1017 drivers/mtd/devices/docg3.c 	if (block1 > docg3->max_block)
docg3            1020 drivers/mtd/devices/docg3.c 	is_good = docg3->bbt[block0 >> 3] & (1 << (block0 & 0x7));
docg3            1035 drivers/mtd/devices/docg3.c static int doc_get_erase_count(struct docg3 *docg3, loff_t from)
docg3            1044 drivers/mtd/devices/docg3.c 	calc_block_sector(from, &block0, &block1, &page, &ofs, docg3->reliable);
docg3            1045 drivers/mtd/devices/docg3.c 	if (block1 > docg3->max_block)
docg3            1048 drivers/mtd/devices/docg3.c 	ret = doc_reset_seq(docg3);
docg3            1050 drivers/mtd/devices/docg3.c 		ret = doc_read_page_prepare(docg3, block0, block1, page,
docg3            1053 drivers/mtd/devices/docg3.c 		ret = doc_read_page_getbytes(docg3, DOC_LAYOUT_WEAR_SIZE,
docg3            1055 drivers/mtd/devices/docg3.c 	doc_read_page_finish(docg3);
docg3            1076 drivers/mtd/devices/docg3.c static int doc_get_op_status(struct docg3 *docg3)
docg3            1080 drivers/mtd/devices/docg3.c 	doc_flash_sequence(docg3, DOC_SEQ_PLANES_STATUS);
docg3            1081 drivers/mtd/devices/docg3.c 	doc_flash_command(docg3, DOC_CMD_PLANES_STATUS);
docg3            1082 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 5);
docg3            1084 drivers/mtd/devices/docg3.c 	doc_ecc_disable(docg3);
docg3            1085 drivers/mtd/devices/docg3.c 	doc_read_data_area(docg3, &status, 1, 1);
docg3            1099 drivers/mtd/devices/docg3.c static int doc_write_erase_wait_status(struct docg3 *docg3)
docg3            1103 drivers/mtd/devices/docg3.c 	for (i = 0; !doc_is_ready(docg3) && i < 5; i++)
docg3            1105 drivers/mtd/devices/docg3.c 	if (!doc_is_ready(docg3)) {
docg3            1111 drivers/mtd/devices/docg3.c 	status = doc_get_op_status(docg3);
docg3            1119 drivers/mtd/devices/docg3.c 	doc_page_finish(docg3);
docg3            1134 drivers/mtd/devices/docg3.c static int doc_erase_block(struct docg3 *docg3, int block0, int block1)
docg3            1139 drivers/mtd/devices/docg3.c 	ret = doc_reset_seq(docg3);
docg3            1143 drivers/mtd/devices/docg3.c 	doc_set_reliable_mode(docg3);
docg3            1144 drivers/mtd/devices/docg3.c 	doc_flash_sequence(docg3, DOC_SEQ_ERASE);
docg3            1147 drivers/mtd/devices/docg3.c 	doc_flash_command(docg3, DOC_CMD_PROG_BLOCK_ADDR);
docg3            1148 drivers/mtd/devices/docg3.c 	doc_setup_addr_sector(docg3, sector);
docg3            1150 drivers/mtd/devices/docg3.c 	doc_flash_command(docg3, DOC_CMD_PROG_BLOCK_ADDR);
docg3            1151 drivers/mtd/devices/docg3.c 	doc_setup_addr_sector(docg3, sector);
docg3            1152 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 1);
docg3            1154 drivers/mtd/devices/docg3.c 	doc_flash_command(docg3, DOC_CMD_ERASECYCLE2);
docg3            1155 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 2);
docg3            1157 drivers/mtd/devices/docg3.c 	if (is_prot_seq_error(docg3)) {
docg3            1162 drivers/mtd/devices/docg3.c 	return doc_write_erase_wait_status(docg3);
docg3            1178 drivers/mtd/devices/docg3.c 	struct docg3 *docg3 = mtd->priv;
docg3            1185 drivers/mtd/devices/docg3.c 			  &ofs, docg3->reliable);
docg3            1190 drivers/mtd/devices/docg3.c 			  docg3->reliable);
docg3            1191 drivers/mtd/devices/docg3.c 	mutex_lock(&docg3->cascade->lock);
docg3            1192 drivers/mtd/devices/docg3.c 	doc_set_device_id(docg3, docg3->device_id);
docg3            1193 drivers/mtd/devices/docg3.c 	doc_set_reliable_mode(docg3);
docg3            1195 drivers/mtd/devices/docg3.c 		ret = doc_erase_block(docg3, block0, block1);
docg3            1199 drivers/mtd/devices/docg3.c 	mutex_unlock(&docg3->cascade->lock);
docg3            1223 drivers/mtd/devices/docg3.c static int doc_write_page(struct docg3 *docg3, loff_t to, const u_char *buf,
docg3            1230 drivers/mtd/devices/docg3.c 	calc_block_sector(to, &block0, &block1, &page, &ofs, docg3->reliable);
docg3            1232 drivers/mtd/devices/docg3.c 	doc_set_device_id(docg3, docg3->device_id);
docg3            1233 drivers/mtd/devices/docg3.c 	ret = doc_reset_seq(docg3);
docg3            1238 drivers/mtd/devices/docg3.c 	ret = doc_write_seek(docg3, block0, block1, page, ofs);
docg3            1242 drivers/mtd/devices/docg3.c 	doc_write_page_ecc_init(docg3, DOC_ECC_BCH_TOTAL_BYTES);
docg3            1243 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 2);
docg3            1244 drivers/mtd/devices/docg3.c 	doc_write_page_putbytes(docg3, DOC_LAYOUT_PAGE_SIZE, buf);
docg3            1247 drivers/mtd/devices/docg3.c 		doc_write_page_putbytes(docg3, DOC_LAYOUT_OOB_PAGEINFO_SZ, oob);
docg3            1248 drivers/mtd/devices/docg3.c 		doc_delay(docg3, 2);
docg3            1251 drivers/mtd/devices/docg3.c 		hamming = doc_register_readb(docg3, DOC_HAMMINGPARITY);
docg3            1252 drivers/mtd/devices/docg3.c 		doc_delay(docg3, 2);
docg3            1253 drivers/mtd/devices/docg3.c 		doc_write_page_putbytes(docg3, DOC_LAYOUT_OOB_HAMMING_SZ,
docg3            1255 drivers/mtd/devices/docg3.c 		doc_delay(docg3, 2);
docg3            1257 drivers/mtd/devices/docg3.c 		doc_get_bch_hw_ecc(docg3, hwecc);
docg3            1258 drivers/mtd/devices/docg3.c 		doc_write_page_putbytes(docg3, DOC_LAYOUT_OOB_BCH_SZ, hwecc);
docg3            1259 drivers/mtd/devices/docg3.c 		doc_delay(docg3, 2);
docg3            1261 drivers/mtd/devices/docg3.c 		doc_write_page_putbytes(docg3, DOC_LAYOUT_OOB_UNUSED_SZ, oob);
docg3            1264 drivers/mtd/devices/docg3.c 		doc_write_page_putbytes(docg3, DOC_LAYOUT_OOB_SIZE, oob);
docg3            1266 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 2);
docg3            1267 drivers/mtd/devices/docg3.c 	doc_page_finish(docg3);
docg3            1268 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 2);
docg3            1269 drivers/mtd/devices/docg3.c 	doc_flash_command(docg3, DOC_CMD_PROG_CYCLE2);
docg3            1270 drivers/mtd/devices/docg3.c 	doc_delay(docg3, 2);
docg3            1276 drivers/mtd/devices/docg3.c 	ret = doc_write_erase_wait_status(docg3);
docg3            1279 drivers/mtd/devices/docg3.c 	doc_read_page_finish(docg3);
docg3            1336 drivers/mtd/devices/docg3.c static int doc_backup_oob(struct docg3 *docg3, loff_t to,
docg3            1347 drivers/mtd/devices/docg3.c 	docg3->oob_write_ofs = to;
docg3            1348 drivers/mtd/devices/docg3.c 	docg3->oob_autoecc = autoecc;
docg3            1350 drivers/mtd/devices/docg3.c 		doc_fill_autooob(docg3->oob_write_buf, ops->oobbuf);
docg3            1353 drivers/mtd/devices/docg3.c 		memcpy(docg3->oob_write_buf, ops->oobbuf, DOC_LAYOUT_OOB_SIZE);
docg3            1377 drivers/mtd/devices/docg3.c 	struct docg3 *docg3 = mtd->priv;
docg3            1422 drivers/mtd/devices/docg3.c 		return doc_backup_oob(docg3, ofs, ops);
docg3            1428 drivers/mtd/devices/docg3.c 	mutex_lock(&docg3->cascade->lock);
docg3            1431 drivers/mtd/devices/docg3.c 		if (ofs == docg3->oob_write_ofs)
docg3            1432 drivers/mtd/devices/docg3.c 			memcpy(oob, docg3->oob_write_buf, DOC_LAYOUT_OOB_SIZE);
docg3            1437 drivers/mtd/devices/docg3.c 		ret = doc_write_page(docg3, ofs, buf, oob, autoecc);
docg3            1450 drivers/mtd/devices/docg3.c 	doc_set_device_id(docg3, 0);
docg3            1451 drivers/mtd/devices/docg3.c 	mutex_unlock(&docg3->cascade->lock);
docg3            1455 drivers/mtd/devices/docg3.c static struct docg3 *sysfs_dev2docg3(struct device *dev,
docg3            1471 drivers/mtd/devices/docg3.c 	struct docg3 *docg3 = sysfs_dev2docg3(dev, attr);
docg3            1474 drivers/mtd/devices/docg3.c 	mutex_lock(&docg3->cascade->lock);
docg3            1475 drivers/mtd/devices/docg3.c 	doc_set_device_id(docg3, docg3->device_id);
docg3            1476 drivers/mtd/devices/docg3.c 	dps0 = doc_register_readb(docg3, DOC_DPS0_STATUS);
docg3            1477 drivers/mtd/devices/docg3.c 	doc_set_device_id(docg3, 0);
docg3            1478 drivers/mtd/devices/docg3.c 	mutex_unlock(&docg3->cascade->lock);
docg3            1486 drivers/mtd/devices/docg3.c 	struct docg3 *docg3 = sysfs_dev2docg3(dev, attr);
docg3            1489 drivers/mtd/devices/docg3.c 	mutex_lock(&docg3->cascade->lock);
docg3            1490 drivers/mtd/devices/docg3.c 	doc_set_device_id(docg3, docg3->device_id);
docg3            1491 drivers/mtd/devices/docg3.c 	dps1 = doc_register_readb(docg3, DOC_DPS1_STATUS);
docg3            1492 drivers/mtd/devices/docg3.c 	doc_set_device_id(docg3, 0);
docg3            1493 drivers/mtd/devices/docg3.c 	mutex_unlock(&docg3->cascade->lock);
docg3            1502 drivers/mtd/devices/docg3.c 	struct docg3 *docg3 = sysfs_dev2docg3(dev, attr);
docg3            1508 drivers/mtd/devices/docg3.c 	mutex_lock(&docg3->cascade->lock);
docg3            1509 drivers/mtd/devices/docg3.c 	doc_set_device_id(docg3, docg3->device_id);
docg3            1511 drivers/mtd/devices/docg3.c 		doc_writeb(docg3, buf[i], DOC_DPS0_KEY);
docg3            1512 drivers/mtd/devices/docg3.c 	doc_set_device_id(docg3, 0);
docg3            1513 drivers/mtd/devices/docg3.c 	mutex_unlock(&docg3->cascade->lock);
docg3            1521 drivers/mtd/devices/docg3.c 	struct docg3 *docg3 = sysfs_dev2docg3(dev, attr);
docg3            1527 drivers/mtd/devices/docg3.c 	mutex_lock(&docg3->cascade->lock);
docg3            1528 drivers/mtd/devices/docg3.c 	doc_set_device_id(docg3, docg3->device_id);
docg3            1530 drivers/mtd/devices/docg3.c 		doc_writeb(docg3, buf[i], DOC_DPS1_KEY);
docg3            1531 drivers/mtd/devices/docg3.c 	doc_set_device_id(docg3, 0);
docg3            1532 drivers/mtd/devices/docg3.c 	mutex_unlock(&docg3->cascade->lock);
docg3            1594 drivers/mtd/devices/docg3.c 	struct docg3 *docg3 = (struct docg3 *)s->private;
docg3            1598 drivers/mtd/devices/docg3.c 	mutex_lock(&docg3->cascade->lock);
docg3            1599 drivers/mtd/devices/docg3.c 	fctrl = doc_register_readb(docg3, DOC_FLASHCONTROL);
docg3            1600 drivers/mtd/devices/docg3.c 	mutex_unlock(&docg3->cascade->lock);
docg3            1616 drivers/mtd/devices/docg3.c 	struct docg3 *docg3 = (struct docg3 *)s->private;
docg3            1620 drivers/mtd/devices/docg3.c 	mutex_lock(&docg3->cascade->lock);
docg3            1621 drivers/mtd/devices/docg3.c 	pctrl = doc_register_readb(docg3, DOC_ASICMODE);
docg3            1623 drivers/mtd/devices/docg3.c 	mutex_unlock(&docg3->cascade->lock);
docg3            1653 drivers/mtd/devices/docg3.c 	struct docg3 *docg3 = (struct docg3 *)s->private;
docg3            1656 drivers/mtd/devices/docg3.c 	mutex_lock(&docg3->cascade->lock);
docg3            1657 drivers/mtd/devices/docg3.c 	id = doc_register_readb(docg3, DOC_DEVICESELECT);
docg3            1658 drivers/mtd/devices/docg3.c 	mutex_unlock(&docg3->cascade->lock);
docg3            1667 drivers/mtd/devices/docg3.c 	struct docg3 *docg3 = (struct docg3 *)s->private;
docg3            1670 drivers/mtd/devices/docg3.c 	mutex_lock(&docg3->cascade->lock);
docg3            1671 drivers/mtd/devices/docg3.c 	protect = doc_register_readb(docg3, DOC_PROTECTION);
docg3            1672 drivers/mtd/devices/docg3.c 	dps0 = doc_register_readb(docg3, DOC_DPS0_STATUS);
docg3            1673 drivers/mtd/devices/docg3.c 	dps0_low = doc_register_readw(docg3, DOC_DPS0_ADDRLOW);
docg3            1674 drivers/mtd/devices/docg3.c 	dps0_high = doc_register_readw(docg3, DOC_DPS0_ADDRHIGH);
docg3            1675 drivers/mtd/devices/docg3.c 	dps1 = doc_register_readb(docg3, DOC_DPS1_STATUS);
docg3            1676 drivers/mtd/devices/docg3.c 	dps1_low = doc_register_readw(docg3, DOC_DPS1_ADDRLOW);
docg3            1677 drivers/mtd/devices/docg3.c 	dps1_high = doc_register_readw(docg3, DOC_DPS1_ADDRHIGH);
docg3            1678 drivers/mtd/devices/docg3.c 	mutex_unlock(&docg3->cascade->lock);
docg3            1720 drivers/mtd/devices/docg3.c 	struct docg3 *docg3 = floor->priv;
docg3            1730 drivers/mtd/devices/docg3.c 	debugfs_create_file("docg3_flashcontrol", S_IRUSR, root, docg3,
docg3            1732 drivers/mtd/devices/docg3.c 	debugfs_create_file("docg3_asic_mode", S_IRUSR, root, docg3,
docg3            1734 drivers/mtd/devices/docg3.c 	debugfs_create_file("docg3_device_id", S_IRUSR, root, docg3,
docg3            1736 drivers/mtd/devices/docg3.c 	debugfs_create_file("docg3_protection", S_IRUSR, root, docg3,
docg3            1747 drivers/mtd/devices/docg3.c 	struct docg3 *docg3 = mtd->priv;
docg3            1750 drivers/mtd/devices/docg3.c 	cfg = doc_register_readb(docg3, DOC_CONFIGURATION);
docg3            1751 drivers/mtd/devices/docg3.c 	docg3->if_cfg = (cfg & DOC_CONF_IF_CFG ? 1 : 0);
docg3            1752 drivers/mtd/devices/docg3.c 	docg3->reliable = reliable_mode;
docg3            1756 drivers/mtd/devices/docg3.c 		mtd->name = devm_kasprintf(docg3->dev, GFP_KERNEL, "docg3.%d",
docg3            1757 drivers/mtd/devices/docg3.c 					   docg3->device_id);
docg3            1760 drivers/mtd/devices/docg3.c 		docg3->max_block = 2047;
docg3            1765 drivers/mtd/devices/docg3.c 	mtd->size = (docg3->max_block + 1) * DOC_LAYOUT_BLOCK_SIZE;
docg3            1766 drivers/mtd/devices/docg3.c 	if (docg3->reliable == 2)
docg3            1769 drivers/mtd/devices/docg3.c 	if (docg3->reliable == 2)
docg3            1802 drivers/mtd/devices/docg3.c 	struct docg3 *docg3;
docg3            1806 drivers/mtd/devices/docg3.c 	docg3 = kzalloc(sizeof(struct docg3), GFP_KERNEL);
docg3            1807 drivers/mtd/devices/docg3.c 	if (!docg3)
docg3            1812 drivers/mtd/devices/docg3.c 	mtd->priv = docg3;
docg3            1814 drivers/mtd/devices/docg3.c 	bbt_nbpages = DIV_ROUND_UP(docg3->max_block + 1,
docg3            1816 drivers/mtd/devices/docg3.c 	docg3->bbt = kcalloc(DOC_LAYOUT_PAGE_SIZE, bbt_nbpages, GFP_KERNEL);
docg3            1817 drivers/mtd/devices/docg3.c 	if (!docg3->bbt)
docg3            1820 drivers/mtd/devices/docg3.c 	docg3->dev = dev;
docg3            1821 drivers/mtd/devices/docg3.c 	docg3->device_id = floor;
docg3            1822 drivers/mtd/devices/docg3.c 	docg3->cascade = cascade;
docg3            1823 drivers/mtd/devices/docg3.c 	doc_set_device_id(docg3, docg3->device_id);
docg3            1825 drivers/mtd/devices/docg3.c 		doc_set_asic_mode(docg3, DOC_ASICMODE_RESET);
docg3            1826 drivers/mtd/devices/docg3.c 	doc_set_asic_mode(docg3, DOC_ASICMODE_NORMAL);
docg3            1828 drivers/mtd/devices/docg3.c 	chip_id = doc_register_readw(docg3, DOC_CHIPID);
docg3            1829 drivers/mtd/devices/docg3.c 	chip_id_inv = doc_register_readw(docg3, DOC_CHIPID_INV);
docg3            1839 drivers/mtd/devices/docg3.c 			 docg3->cascade->base, floor);
docg3            1850 drivers/mtd/devices/docg3.c 	doc_hamming_ecc_init(docg3, DOC_LAYOUT_OOB_PAGEINFO_SZ);
docg3            1851 drivers/mtd/devices/docg3.c 	doc_reload_bbt(docg3);
docg3            1855 drivers/mtd/devices/docg3.c 	kfree(docg3->bbt);
docg3            1859 drivers/mtd/devices/docg3.c 	kfree(docg3);
docg3            1870 drivers/mtd/devices/docg3.c 	struct docg3 *docg3 = mtd->priv;
docg3            1873 drivers/mtd/devices/docg3.c 	kfree(docg3->bbt);
docg3            1874 drivers/mtd/devices/docg3.c 	kfree(docg3);
docg3            1889 drivers/mtd/devices/docg3.c 	struct docg3 *docg3;
docg3            1894 drivers/mtd/devices/docg3.c 	docg3 = mtd->priv;
docg3            1898 drivers/mtd/devices/docg3.c 		doc_readb(docg3, DOC_IOSPACE_IPL);
docg3            1916 drivers/mtd/devices/docg3.c 	struct docg3 *docg3;
docg3            1925 drivers/mtd/devices/docg3.c 		docg3 = mtd->priv;
docg3            1927 drivers/mtd/devices/docg3.c 		doc_writeb(docg3, floor, DOC_DEVICESELECT);
docg3            1928 drivers/mtd/devices/docg3.c 		ctrl = doc_register_readb(docg3, DOC_FLASHCONTROL);
docg3            1930 drivers/mtd/devices/docg3.c 		doc_writeb(docg3, ctrl, DOC_FLASHCONTROL);
docg3            1934 drivers/mtd/devices/docg3.c 			pwr_down = doc_register_readb(docg3, DOC_POWERMODE);
docg3            1949 drivers/mtd/devices/docg3.c 	docg3 = mtd->priv;
docg3            1950 drivers/mtd/devices/docg3.c 	doc_set_asic_mode(docg3, DOC_ASICMODE_POWERDOWN);
docg3            2040 drivers/mtd/devices/docg3.c 	struct docg3 *docg3 = cascade->floors[0]->priv;
docg3            2048 drivers/mtd/devices/docg3.c 	free_bch(docg3->cascade->bch);
docg3             302 drivers/mtd/devices/docg3.h #define doc_err(fmt, arg...) dev_err(docg3->dev, (fmt), ## arg)
docg3             303 drivers/mtd/devices/docg3.h #define doc_info(fmt, arg...) dev_info(docg3->dev, (fmt), ## arg)
docg3             304 drivers/mtd/devices/docg3.h #define doc_dbg(fmt, arg...) dev_dbg(docg3->dev, (fmt), ## arg)
docg3             305 drivers/mtd/devices/docg3.h #define doc_vdbg(fmt, arg...) dev_vdbg(docg3->dev, (fmt), ## arg)
docg3             312 drivers/mtd/devices/docg3.h #define TRACE_SYSTEM docg3
docg3             342 drivers/mtd/devices/docg3.h #define TRACE_INCLUDE_FILE docg3