Lines Matching refs:doc

264 static int poll_status(struct docg4_priv *doc)  in poll_status()  argument
274 void __iomem *docptr = doc->virtadr; in poll_status()
276 dev_dbg(doc->dev, "%s...\n", __func__); in poll_status()
289 dev_err(doc->dev, "%s: timed out!\n", __func__); in poll_status()
300 struct docg4_priv *doc = nand->priv; in docg4_wait() local
302 dev_dbg(doc->dev, "%s...\n", __func__); in docg4_wait()
305 if (doc->status) { in docg4_wait()
306 status |= doc->status; in docg4_wait()
307 doc->status = 0; in docg4_wait()
311 status |= poll_status(doc); in docg4_wait()
322 struct docg4_priv *doc = nand->priv; in docg4_select_chip() local
323 void __iomem *docptr = doc->virtadr; in docg4_select_chip()
325 dev_dbg(doc->dev, "%s: chip %d\n", __func__, chip); in docg4_select_chip()
331 dev_warn(doc->dev, "multiple floors currently unsupported\n"); in docg4_select_chip()
341 struct docg4_priv *doc = nand->priv; in reset() local
342 void __iomem *docptr = doc->virtadr; in reset()
357 poll_status(doc); in reset()
379 struct docg4_priv *doc = nand->priv; in correct_data() local
380 void __iomem *docptr = doc->virtadr; in correct_data()
385 read_hw_ecc(docptr, doc->ecc_buf); /* read 7 hw-generated ecc bytes */ in correct_data()
388 if (!memcmp(doc->ecc_buf, blank_read_hwecc, 7)) in correct_data()
409 dev_warn(doc->dev, in correct_data()
426 doc->ecc_buf[i] = bitrev8(doc->ecc_buf[i]); in correct_data()
428 numerrs = decode_bch(doc->bch, NULL, DOCG4_USERDATA_LEN, NULL, in correct_data()
429 doc->ecc_buf, NULL, errpos); in correct_data()
432 dev_warn(doc->dev, "uncorrectable errors at offset %08x\n", in correct_data()
459 dev_notice(doc->dev, "%d error(s) corrected at offset %08x\n", in correct_data()
468 struct docg4_priv *doc = nand->priv; in docg4_read_byte() local
470 dev_dbg(doc->dev, "%s\n", __func__); in docg4_read_byte()
472 if (doc->last_command.command == NAND_CMD_STATUS) { in docg4_read_byte()
480 doc->last_command.command = 0; in docg4_read_byte()
482 if (doc->status) { in docg4_read_byte()
483 status = doc->status; in docg4_read_byte()
484 doc->status = 0; in docg4_read_byte()
494 dev_warn(doc->dev, "unexpected call to read_byte()\n"); in docg4_read_byte()
499 static void write_addr(struct docg4_priv *doc, uint32_t docg4_addr) in write_addr() argument
503 void __iomem *docptr = doc->virtadr; in write_addr()
513 static int read_progstatus(struct docg4_priv *doc) in read_progstatus() argument
520 void __iomem *docptr = doc->virtadr; in read_progstatus()
527 dev_dbg(doc->dev, "docg4: %s: %02x %02x %02x\n", in read_progstatus()
533 doc->status = NAND_STATUS_FAIL; in read_progstatus()
534 dev_warn(doc->dev, "read_progstatus failed: " in read_progstatus()
549 struct docg4_priv *doc = nand->priv; in pageprog() local
550 void __iomem *docptr = doc->virtadr; in pageprog()
553 dev_dbg(doc->dev, "docg4: %s\n", __func__); in pageprog()
561 poll_status(doc); in pageprog()
572 retval = read_progstatus(doc); in pageprog()
575 poll_status(doc); in pageprog()
586 struct docg4_priv *doc = nand->priv; in sequence_reset() local
587 void __iomem *docptr = doc->virtadr; in sequence_reset()
594 poll_status(doc); in sequence_reset()
603 struct docg4_priv *doc = nand->priv; in read_page_prologue() local
604 void __iomem *docptr = doc->virtadr; in read_page_prologue()
606 dev_dbg(doc->dev, in read_page_prologue()
615 write_addr(doc, docg4_addr); in read_page_prologue()
622 poll_status(doc); in read_page_prologue()
630 struct docg4_priv *doc = nand->priv; in write_page_prologue() local
631 void __iomem *docptr = doc->virtadr; in write_page_prologue()
633 dev_dbg(doc->dev, in write_page_prologue()
647 write_addr(doc, docg4_addr); in write_page_prologue()
650 poll_status(doc); in write_page_prologue()
695 struct docg4_priv *doc = nand->priv; in docg4_command() local
698 dev_dbg(doc->dev, "%s %x, page_addr=%x, column=%x\n", in docg4_command()
705 doc->last_command.command = command; in docg4_command()
706 doc->last_command.column = column; in docg4_command()
707 doc->last_command.page = page_addr; in docg4_command()
729 dev_warn(doc->dev, in docg4_command()
736 if (doc->oob_page == page_addr) in docg4_command()
737 memcpy(nand->oob_poi, doc->oob_buf, 16); in docg4_command()
749 dev_warn(doc->dev, "docg4_command: " in docg4_command()
759 struct docg4_priv *doc = nand->priv; in read_page() local
760 void __iomem *docptr = doc->virtadr; in read_page()
764 dev_dbg(doc->dev, "%s: page %08x\n", __func__, page); in read_page()
780 dev_err(doc->dev, in read_page()
786 dev_dbg(doc->dev, "%s: status = 0x%x\n", __func__, status); in read_page()
805 dev_dbg(doc->dev, "%s: edc_err = 0x%02x\n", __func__, edc_err); in read_page()
839 struct docg4_priv *doc = nand->priv; in docg4_read_oob() local
840 void __iomem *docptr = doc->virtadr; in docg4_read_oob()
843 dev_dbg(doc->dev, "%s: page %x\n", __func__, page); in docg4_read_oob()
857 dev_warn(doc->dev, in docg4_read_oob()
862 dev_dbg(doc->dev, "%s: status = 0x%x\n", __func__, status); in docg4_read_oob()
878 struct docg4_priv *doc = nand->priv; in docg4_erase_block() local
879 void __iomem *docptr = doc->virtadr; in docg4_erase_block()
882 dev_dbg(doc->dev, "%s: page %04x\n", __func__, page); in docg4_erase_block()
903 poll_status(doc); in docg4_erase_block()
913 read_progstatus(doc); in docg4_erase_block()
917 poll_status(doc); in docg4_erase_block()
926 struct docg4_priv *doc = nand->priv; in write_page() local
927 void __iomem *docptr = doc->virtadr; in write_page()
930 dev_dbg(doc->dev, "%s...\n", __func__); in write_page()
1006 struct docg4_priv *doc = nand->priv; in docg4_write_oob() local
1007 doc->oob_page = page; in docg4_write_oob()
1008 memcpy(doc->oob_buf, nand->oob_poi, 16); in docg4_write_oob()
1020 struct docg4_priv *doc = nand->priv; in read_factory_bbt() local
1051 dev_warn(doc->dev, in read_factory_bbt()
1070 dev_notice(doc->dev, "factory-marked bad block: %d\n", in read_factory_bbt()
1093 struct docg4_priv *doc = nand->priv; in docg4_block_markbad() local
1098 dev_dbg(doc->dev, "%s: %08llx\n", __func__, ofs); in docg4_block_markbad()
1101 dev_warn(doc->dev, "%s: ofs %llx not start of block!\n", in docg4_block_markbad()
1141 struct docg4_priv *doc = platform_get_drvdata(pdev); in docg4_suspend() local
1142 void __iomem *docptr = doc->virtadr; in docg4_suspend()
1144 dev_dbg(doc->dev, "%s...\n", __func__); in docg4_suspend()
1155 dev_err(doc->dev, "suspend failed; " in docg4_suspend()
1178 struct docg4_priv *doc = platform_get_drvdata(pdev); in docg4_resume() local
1179 void __iomem *docptr = doc->virtadr; in docg4_resume()
1182 dev_dbg(doc->dev, "%s...\n", __func__); in docg4_resume()
1206 struct docg4_priv *doc = nand->priv; in init_mtd_structs() local
1228 nand->IO_ADDR_R = nand->IO_ADDR_W = doc->virtadr + DOC_IOSPACE_DATA; in init_mtd_structs()
1265 struct docg4_priv *doc = nand->priv; in read_id_reg() local
1266 void __iomem *docptr = doc->virtadr; in read_id_reg()
1276 dev_info(doc->dev, in read_id_reg()
1291 struct docg4_priv *doc; in probe_docg4() local
1316 doc = (struct docg4_priv *) (nand + 1); in probe_docg4()
1318 nand->priv = doc; in probe_docg4()
1320 doc->virtadr = virtadr; in probe_docg4()
1321 doc->dev = dev; in probe_docg4()
1326 doc->bch = init_bch(DOCG4_M, DOCG4_T, DOCG4_PRIMITIVE_POLY); in probe_docg4()
1327 if (doc->bch == NULL) { in probe_docg4()
1332 platform_set_drvdata(pdev, doc); in probe_docg4()
1353 doc->mtd = mtd; in probe_docg4()
1361 struct docg4_priv *doc = nand->priv; in probe_docg4() local
1363 free_bch(doc->bch); in probe_docg4()
1372 struct docg4_priv *doc = platform_get_drvdata(pdev); in cleanup_docg4() local
1373 nand_release(doc->mtd); in cleanup_docg4()
1374 free_bch(doc->bch); in cleanup_docg4()
1375 kfree(doc->mtd); in cleanup_docg4()
1376 iounmap(doc->virtadr); in cleanup_docg4()