Lines Matching refs:doc

84 #define DoC_is_MillenniumPlus(doc) ((doc)->ChipID == DOC_ChipID_DocMilPlus16 || (doc)->ChipID == DO…  argument
85 #define DoC_is_Millennium(doc) ((doc)->ChipID == DOC_ChipID_DocMil) argument
86 #define DoC_is_2000(doc) ((doc)->ChipID == DOC_ChipID_Doc2k) argument
222 static void DoC_Delay(struct doc_priv *doc, unsigned short cycles) in DoC_Delay() argument
228 if (DoC_is_Millennium(doc)) in DoC_Delay()
229 dummy = ReadDOC(doc->virtadr, NOP); in DoC_Delay()
230 else if (DoC_is_MillenniumPlus(doc)) in DoC_Delay()
231 dummy = ReadDOC(doc->virtadr, Mplus_NOP); in DoC_Delay()
233 dummy = ReadDOC(doc->virtadr, DOCStatus); in DoC_Delay()
241 static int _DoC_WaitReady(struct doc_priv *doc) in _DoC_WaitReady() argument
243 void __iomem *docptr = doc->virtadr; in _DoC_WaitReady()
249 if (DoC_is_MillenniumPlus(doc)) { in _DoC_WaitReady()
272 static inline int DoC_WaitReady(struct doc_priv *doc) in DoC_WaitReady() argument
274 void __iomem *docptr = doc->virtadr; in DoC_WaitReady()
277 if (DoC_is_MillenniumPlus(doc)) { in DoC_WaitReady()
278 DoC_Delay(doc, 4); in DoC_WaitReady()
282 ret = _DoC_WaitReady(doc); in DoC_WaitReady()
284 DoC_Delay(doc, 4); in DoC_WaitReady()
288 ret = _DoC_WaitReady(doc); in DoC_WaitReady()
289 DoC_Delay(doc, 2); in DoC_WaitReady()
300 struct doc_priv *doc = this->priv; in doc2000_write_byte() local
301 void __iomem *docptr = doc->virtadr; in doc2000_write_byte()
312 struct doc_priv *doc = this->priv; in doc2000_read_byte() local
313 void __iomem *docptr = doc->virtadr; in doc2000_read_byte()
317 DoC_Delay(doc, 2); in doc2000_read_byte()
327 struct doc_priv *doc = this->priv; in doc2000_writebuf() local
328 void __iomem *docptr = doc->virtadr; in doc2000_writebuf()
344 struct doc_priv *doc = this->priv; in doc2000_readbuf() local
345 void __iomem *docptr = doc->virtadr; in doc2000_readbuf()
359 struct doc_priv *doc = this->priv; in doc2000_readbuf_dword() local
360 void __iomem *docptr = doc->virtadr; in doc2000_readbuf_dword()
380 struct doc_priv *doc = this->priv; in doc200x_ident_chip() local
397 if (doc->ChipID == DOC_ChipID_Doc2k && try_dword && !nr) { in doc200x_ident_chip()
403 void __iomem *docptr = doc->virtadr; in doc200x_ident_chip()
426 struct doc_priv *doc = this->priv; in doc2000_count_chips() local
431 doc->chips_per_floor = 4; in doc2000_count_chips()
441 doc->chips_per_floor = i; in doc2000_count_chips()
447 struct doc_priv *doc = this->priv; in doc200x_wait() local
451 DoC_WaitReady(doc); in doc200x_wait()
453 DoC_WaitReady(doc); in doc200x_wait()
462 struct doc_priv *doc = this->priv; in doc2001_write_byte() local
463 void __iomem *docptr = doc->virtadr; in doc2001_write_byte()
473 struct doc_priv *doc = this->priv; in doc2001_read_byte() local
474 void __iomem *docptr = doc->virtadr; in doc2001_read_byte()
478 DoC_Delay(doc, 2); in doc2001_read_byte()
487 struct doc_priv *doc = this->priv; in doc2001_writebuf() local
488 void __iomem *docptr = doc->virtadr; in doc2001_writebuf()
500 struct doc_priv *doc = this->priv; in doc2001_readbuf() local
501 void __iomem *docptr = doc->virtadr; in doc2001_readbuf()
517 struct doc_priv *doc = this->priv; in doc2001plus_read_byte() local
518 void __iomem *docptr = doc->virtadr; in doc2001plus_read_byte()
532 struct doc_priv *doc = this->priv; in doc2001plus_writebuf() local
533 void __iomem *docptr = doc->virtadr; in doc2001plus_writebuf()
550 struct doc_priv *doc = this->priv; in doc2001plus_readbuf() local
551 void __iomem *docptr = doc->virtadr; in doc2001plus_readbuf()
581 struct doc_priv *doc = this->priv; in doc2001plus_select_chip() local
582 void __iomem *docptr = doc->virtadr; in doc2001plus_select_chip()
594 floor = chip / doc->chips_per_floor; in doc2001plus_select_chip()
595 chip -= (floor * doc->chips_per_floor); in doc2001plus_select_chip()
601 doc->curchip = chip; in doc2001plus_select_chip()
602 doc->curfloor = floor; in doc2001plus_select_chip()
608 struct doc_priv *doc = this->priv; in doc200x_select_chip() local
609 void __iomem *docptr = doc->virtadr; in doc200x_select_chip()
618 floor = chip / doc->chips_per_floor; in doc200x_select_chip()
619 chip -= (floor * doc->chips_per_floor); in doc200x_select_chip()
629 doc->curchip = chip; in doc200x_select_chip()
630 doc->curfloor = floor; in doc200x_select_chip()
639 struct doc_priv *doc = this->priv; in doc200x_hwcontrol() local
640 void __iomem *docptr = doc->virtadr; in doc200x_hwcontrol()
643 doc->CDSNControl &= ~CDSN_CTRL_MSK; in doc200x_hwcontrol()
644 doc->CDSNControl |= ctrl & CDSN_CTRL_MSK; in doc200x_hwcontrol()
646 printk("hwcontrol(%d): %02x\n", cmd, doc->CDSNControl); in doc200x_hwcontrol()
647 WriteDOC(doc->CDSNControl, docptr, CDSNControl); in doc200x_hwcontrol()
649 DoC_Delay(doc, 4); in doc200x_hwcontrol()
652 if (DoC_is_2000(doc)) in doc200x_hwcontrol()
662 struct doc_priv *doc = this->priv; in doc2001plus_command() local
663 void __iomem *docptr = doc->virtadr; in doc2001plus_command()
768 struct doc_priv *doc = this->priv; in doc200x_dev_ready() local
769 void __iomem *docptr = doc->virtadr; in doc200x_dev_ready()
771 if (DoC_is_MillenniumPlus(doc)) { in doc200x_dev_ready()
773 DoC_Delay(doc, 4); in doc200x_dev_ready()
784 DoC_Delay(doc, 4); in doc200x_dev_ready()
791 DoC_Delay(doc, 2); in doc200x_dev_ready()
808 struct doc_priv *doc = this->priv; in doc200x_enable_hwecc() local
809 void __iomem *docptr = doc->virtadr; in doc200x_enable_hwecc()
827 struct doc_priv *doc = this->priv; in doc2001plus_enable_hwecc() local
828 void __iomem *docptr = doc->virtadr; in doc2001plus_enable_hwecc()
847 struct doc_priv *doc = this->priv; in doc200x_calculate_ecc() local
848 void __iomem *docptr = doc->virtadr; in doc200x_calculate_ecc()
853 if (DoC_is_2000(doc)) { in doc200x_calculate_ecc()
854 WriteDOC(doc->CDSNControl & ~CDSN_CTRL_FLASH_IO, docptr, CDSNControl); in doc200x_calculate_ecc()
858 WriteDOC(doc->CDSNControl, docptr, CDSNControl); in doc200x_calculate_ecc()
859 } else if (DoC_is_MillenniumPlus(doc)) { in doc200x_calculate_ecc()
870 if (DoC_is_MillenniumPlus(doc)) in doc200x_calculate_ecc()
877 if (DoC_is_MillenniumPlus(doc)) in doc200x_calculate_ecc()
908 struct doc_priv *doc = this->priv; in doc200x_correct_data() local
909 void __iomem *docptr = doc->virtadr; in doc200x_correct_data()
915 if (DoC_is_2000(doc)) { in doc200x_correct_data()
919 } else if (DoC_is_MillenniumPlus(doc)) { in doc200x_correct_data()
932 if (DoC_is_MillenniumPlus(doc)) in doc200x_correct_data()
970 if (DoC_is_MillenniumPlus(doc)) in doc200x_correct_data()
1008 struct doc_priv *doc = this->priv; in find_media_headers() local
1023 if (doc->mh0_page == -1) { in find_media_headers()
1024 doc->mh0_page = offs >> this->page_shift; in find_media_headers()
1029 doc->mh1_page = offs >> this->page_shift; in find_media_headers()
1032 if (doc->mh0_page == -1) { in find_media_headers()
1038 offs = doc->mh0_page << this->page_shift; in find_media_headers()
1051 struct doc_priv *doc = this->priv; in nftl_partscan() local
1118 offs = max(doc->mh0_page, doc->mh1_page); in nftl_partscan()
1153 struct doc_priv *doc = this->priv; in inftl_partscan() local
1174 doc->mh1_page = doc->mh0_page + (4096 >> this->page_shift); in inftl_partscan()
1210 blocks = doc->chips_per_floor << (this->chip_shift - this->phys_erase_shift); in inftl_partscan()
1273 struct doc_priv *doc = this->priv; in nftl_scan_bbt() local
1286 this->bbt_td->pages[0] = doc->mh0_page + 1; in nftl_scan_bbt()
1287 if (doc->mh1_page != -1) { in nftl_scan_bbt()
1292 this->bbt_md->pages[0] = doc->mh1_page + 1; in nftl_scan_bbt()
1311 struct doc_priv *doc = this->priv; in inftl_scan_bbt() local
1314 if (this->numchips > doc->chips_per_floor) { in inftl_scan_bbt()
1319 if (DoC_is_MillenniumPlus(doc)) { in inftl_scan_bbt()
1367 struct doc_priv *doc = this->priv; in doc2000_init() local
1374 doc->CDSNControl = CDSN_CTRL_FLASH_IO | CDSN_CTRL_ECC_IO; in doc2000_init()
1377 return (4 * doc->chips_per_floor); in doc2000_init()
1383 struct doc_priv *doc = this->priv; in doc2001_init() local
1389 ReadDOC(doc->virtadr, ChipID); in doc2001_init()
1390 ReadDOC(doc->virtadr, ChipID); in doc2001_init()
1391 ReadDOC(doc->virtadr, ChipID); in doc2001_init()
1392 if (ReadDOC(doc->virtadr, ChipID) != DOC_ChipID_DocMil) { in doc2001_init()
1400 return (4 * doc->chips_per_floor); in doc2001_init()
1403 doc->chips_per_floor = 1; in doc2001_init()
1413 struct doc_priv *doc = this->priv; in doc2001plus_init() local
1424 doc->chips_per_floor = 1; in doc2001plus_init()
1435 struct doc_priv *doc; in doc_probe() local
1526 for (mtd = doclist; mtd; mtd = doc->nextdoc) { in doc_probe()
1530 doc = nand->priv; in doc_probe()
1536 oldval = ReadDOC(doc->virtadr, Mplus_AliasResolution); in doc_probe()
1539 oldval = ReadDOC(doc->virtadr, AliasResolution); in doc_probe()
1546 oldval = ReadDOC(doc->virtadr, Mplus_AliasResolution); in doc_probe()
1550 oldval = ReadDOC(doc->virtadr, AliasResolution); in doc_probe()
1555 printk(KERN_DEBUG "Found alias of DOC at 0x%lx to 0x%lx\n", doc->physadr, physadr); in doc_probe()
1571 doc = (struct doc_priv *) (nand + 1); in doc_probe()
1572 nand->bbt_td = (struct nand_bbt_descr *) (doc + 1); in doc_probe()
1578 nand->priv = doc; in doc_probe()
1595 doc->physadr = physadr; in doc_probe()
1596 doc->virtadr = virtadr; in doc_probe()
1597 doc->ChipID = ChipID; in doc_probe()
1598 doc->curfloor = -1; in doc_probe()
1599 doc->curchip = -1; in doc_probe()
1600 doc->mh0_page = -1; in doc_probe()
1601 doc->mh1_page = -1; in doc_probe()
1602 doc->nextdoc = doclist; in doc_probe()
1644 struct doc_priv *doc; in release_nanddoc() local
1648 doc = nand->priv; in release_nanddoc()
1650 nextmtd = doc->nextdoc; in release_nanddoc()
1652 iounmap(doc->virtadr); in release_nanddoc()
1653 release_mem_region(doc->physadr, DOC_IOREMAP_LEN); in release_nanddoc()