Lines Matching refs:mtd

857 static int doc_read_oob(struct mtd_info *mtd, loff_t from,  in doc_read_oob()  argument
860 struct docg3 *docg3 = mtd->priv; in doc_read_oob()
885 if (from + len > mtd->size) in doc_read_oob()
942 mtd->ecc_stats.failed++; in doc_read_oob()
946 mtd->ecc_stats.corrected += ret; in doc_read_oob()
985 static int doc_read(struct mtd_info *mtd, loff_t from, size_t len, in doc_read() argument
996 ret = doc_read_oob(mtd, from, &ops); in doc_read()
1030 static int doc_block_isbad(struct mtd_info *mtd, loff_t from) in doc_block_isbad() argument
1032 struct docg3 *docg3 = mtd->priv; in doc_block_isbad()
1201 static int doc_erase(struct mtd_info *mtd, struct erase_info *info) in doc_erase() argument
1203 struct docg3 *docg3 = mtd->priv; in doc_erase()
1213 if (info->addr + info->len > mtd->size || page || ofs) in doc_erase()
1222 for (len = info->len; !ret && len > 0; len -= mtd->erasesize) { in doc_erase()
1411 static int doc_write_oob(struct mtd_info *mtd, loff_t ofs, in doc_write_oob() argument
1414 struct docg3 *docg3 = mtd->priv; in doc_write_oob()
1438 oobdelta = mtd->oobsize; in doc_write_oob()
1441 oobdelta = mtd->ecclayout->oobavail; in doc_write_oob()
1452 if (ofs + len > mtd->size) in doc_write_oob()
1507 static int doc_write(struct mtd_info *mtd, loff_t to, size_t len, in doc_write() argument
1510 struct docg3 *docg3 = mtd->priv; in doc_write()
1522 ret = doc_write_oob(mtd, to, &ops); in doc_write()
1818 static void __init doc_set_driver_info(int chip_id, struct mtd_info *mtd) in doc_set_driver_info() argument
1820 struct docg3 *docg3 = mtd->priv; in doc_set_driver_info()
1829 mtd->name = kasprintf(GFP_KERNEL, "docg3.%d", in doc_set_driver_info()
1834 mtd->type = MTD_NANDFLASH; in doc_set_driver_info()
1835 mtd->flags = MTD_CAP_NANDFLASH; in doc_set_driver_info()
1836 mtd->size = (docg3->max_block + 1) * DOC_LAYOUT_BLOCK_SIZE; in doc_set_driver_info()
1838 mtd->size /= 2; in doc_set_driver_info()
1839 mtd->erasesize = DOC_LAYOUT_BLOCK_SIZE * DOC_LAYOUT_NBPLANES; in doc_set_driver_info()
1841 mtd->erasesize /= 2; in doc_set_driver_info()
1842 mtd->writebufsize = mtd->writesize = DOC_LAYOUT_PAGE_SIZE; in doc_set_driver_info()
1843 mtd->oobsize = DOC_LAYOUT_OOB_SIZE; in doc_set_driver_info()
1844 mtd->owner = THIS_MODULE; in doc_set_driver_info()
1845 mtd->_erase = doc_erase; in doc_set_driver_info()
1846 mtd->_read = doc_read; in doc_set_driver_info()
1847 mtd->_write = doc_write; in doc_set_driver_info()
1848 mtd->_read_oob = doc_read_oob; in doc_set_driver_info()
1849 mtd->_write_oob = doc_write_oob; in doc_set_driver_info()
1850 mtd->_block_isbad = doc_block_isbad; in doc_set_driver_info()
1851 mtd->ecclayout = &docg3_oobinfo; in doc_set_driver_info()
1852 mtd->ecc_strength = DOC_ECC_BCH_T; in doc_set_driver_info()
1874 struct mtd_info *mtd; in doc_probe_device() local
1880 mtd = kzalloc(sizeof(struct mtd_info), GFP_KERNEL); in doc_probe_device()
1881 if (!mtd) in doc_probe_device()
1883 mtd->priv = docg3; in doc_probe_device()
1916 doc_set_driver_info(chip_id, mtd); in doc_probe_device()
1920 return mtd; in doc_probe_device()
1923 kfree(mtd); in doc_probe_device()
1934 static void doc_release_device(struct mtd_info *mtd) in doc_release_device() argument
1936 struct docg3 *docg3 = mtd->priv; in doc_release_device()
1938 mtd_device_unregister(mtd); in doc_release_device()
1941 kfree(mtd->name); in doc_release_device()
1942 kfree(mtd); in doc_release_device()
1955 struct mtd_info **docg3_floors, *mtd; in docg3_resume() local
1960 mtd = docg3_floors[0]; in docg3_resume()
1961 docg3 = mtd->priv; in docg3_resume()
1982 struct mtd_info **docg3_floors, *mtd; in docg3_suspend() local
1989 mtd = docg3_floors[floor]; in docg3_suspend()
1990 if (!mtd) in docg3_suspend()
1992 docg3 = mtd->priv; in docg3_suspend()
2015 mtd = docg3_floors[0]; in docg3_suspend()
2016 docg3 = mtd->priv; in docg3_suspend()
2033 struct mtd_info *mtd; in docg3_probe() local
2060 mtd = doc_probe_device(cascade, floor, dev); in docg3_probe()
2061 if (IS_ERR(mtd)) { in docg3_probe()
2062 ret = PTR_ERR(mtd); in docg3_probe()
2065 if (!mtd) { in docg3_probe()
2071 cascade->floors[floor] = mtd; in docg3_probe()
2072 ret = mtd_device_parse_register(mtd, part_probes, NULL, NULL, in docg3_probe()