Lines Matching refs:master

514 	struct mtd_info *master = mtd_get_master(mtd);
515 int npairs = mtd_wunit_per_eb(master) / mtd_pairing_groups(master);
520 if (master->pairing && master->pairing->get_info)
521 return master->pairing->get_info(master, wunit, info);
557 struct mtd_info *master = mtd_get_master(mtd);
558 int ngroups = mtd_pairing_groups(master);
559 int npairs = mtd_wunit_per_eb(master) / ngroups;
565 if (master->pairing && master->pairing->get_wunit)
566 return mtd->pairing->get_wunit(master, info);
584 struct mtd_info *master = mtd_get_master(mtd);
586 if (!master->pairing || !master->pairing->ngroups)
589 return master->pairing->ngroups;
706 struct mtd_info *master = mtd_get_master(mtd);
712 * mtd_device_parse_register() multiple times on the same master MTD,
728 if (WARN_ON((!mtd->erasesize || !master->_erase) &&
734 * master is an MLC NAND and has a proper pairing scheme defined.
741 (!mtd_is_partition(mtd) || master->type != MTD_MLCNANDFLASH ||
742 !master->pairing || master->_writev))
767 int ngroups = mtd_pairing_groups(master);
770 mtd->size = (u64)mtd_div_by_eb(mtd->size, master) *
919 mutex_init(&mtd->master.partitions_lock);
920 mutex_init(&mtd->master.chrdev_lock);
1202 * @master: the MTD device to unregister. This will unregister both the master
1205 int mtd_device_unregister(struct mtd_info *master)
1209 if (master->_reboot) {
1210 unregister_reboot_notifier(&master->reboot_notifier);
1211 memset(&master->reboot_notifier, 0, sizeof(master->reboot_notifier));
1214 nvmem_unregister(master->otp_user_nvmem);
1215 nvmem_unregister(master->otp_factory_nvmem);
1218 err = mtd_virt_concat_destroy(master);
1222 err = del_mtd_partitions(master);
1226 if (!device_is_registered(&master->dev))
1229 return del_mtd_device(master);
1332 struct mtd_info *master = mtd_get_master(mtd);
1335 if (master->_get_device) {
1336 err = master->_get_device(master);
1341 if (!try_module_get(master->owner)) {
1342 if (master->_put_device)
1343 master->_put_device(master);
1348 if (mtd != master)
1354 kref_get(&master->refcnt);
1437 struct mtd_info *master = mtd_get_master(mtd);
1443 if (mtd != master)
1449 kref_put(&master->refcnt, mtd_device_release);
1451 module_put(master->owner);
1453 /* must be the last as master can be freed in the _put_device */
1454 if (master->_put_device)
1455 master->_put_device(master);
1466 struct mtd_info *master = mtd_get_master(mtd);
1474 if (!mtd->erasesize || !master->_erase)
1489 master->erasesize;
1491 master->erasesize) -
1497 ret = master->_erase(master, &adjinstr);
1503 master);
1519 struct mtd_info *master = mtd_get_master(mtd);
1525 if (!master->_point)
1533 return master->_point(master, from, len, retlen, virt, phys);
1540 struct mtd_info *master = mtd_get_master(mtd);
1542 if (!master->_unpoint)
1548 return master->_unpoint(master, mtd_get_master_ofs(mtd, from), len);
1575 static void mtd_update_ecc_stats(struct mtd_info *mtd, struct mtd_info *master,
1580 if (master == mtd)
1583 diff = master->ecc_stats;
1640 struct mtd_info *master = mtd_get_master(mtd);
1643 if (!master->_panic_write)
1651 if (!master->oops_panic_write)
1652 master->oops_panic_write = true;
1654 return master->_panic_write(master, mtd_get_master_ofs(mtd, to), len,
1695 struct mtd_info *master = mtd_get_master(mtd);
1699 if (master->_read_oob)
1700 ret = master->_read_oob(master, from, ops);
1702 ret = master->_read(master, from, ops->len, &ops->retlen,
1711 struct mtd_info *master = mtd_get_master(mtd);
1715 if (master->_write_oob)
1716 ret = master->_write_oob(master, to, ops);
1718 ret = master->_write(master, to, ops->len, &ops->retlen,
1727 struct mtd_info *master = mtd_get_master(mtd);
1728 int ngroups = mtd_pairing_groups(master);
1729 int npairs = mtd_wunit_per_eb(master) / ngroups;
1738 base = (loff_t)mtd_div_by_eb(start, mtd) * master->erasesize;
1749 base += master->erasesize;
1752 wunit = mtd_pairing_info_to_wunit(master, &info);
1789 struct mtd_info *master = mtd_get_master(mtd);
1790 struct mtd_ecc_stats old_stats = master->ecc_stats;
1802 if (!master->_read_oob && (!master->_read || ops->oobbuf))
1813 mtd_update_ecc_stats(mtd, master, &old_stats);
1834 struct mtd_info *master = mtd_get_master(mtd);
1849 if (!master->_write_oob && (!master->_write || ops->oobbuf))
1878 struct mtd_info *master = mtd_get_master(mtd);
1882 if (!master || section < 0)
1885 if (!master->ooblayout || !master->ooblayout->ecc)
1888 return master->ooblayout->ecc(master, section, oobecc);
1912 struct mtd_info *master = mtd_get_master(mtd);
1916 if (!master || section < 0)
1919 if (!master->ooblayout || !master->ooblayout->free)
1922 return master->ooblayout->free(master, section, oobfree);
2231 struct mtd_info *master = mtd_get_master(mtd);
2233 if (!master->_get_fact_prot_info)
2237 return master->_get_fact_prot_info(master, len, retlen, buf);
2244 struct mtd_info *master = mtd_get_master(mtd);
2247 if (!master->_read_fact_prot_reg)
2251 return master->_read_fact_prot_reg(master, from, len, retlen, buf);
2258 struct mtd_info *master = mtd_get_master(mtd);
2260 if (!master->_get_user_prot_info)
2264 return master->_get_user_prot_info(master, len, retlen, buf);
2271 struct mtd_info *master = mtd_get_master(mtd);
2274 if (!master->_read_user_prot_reg)
2278 return master->_read_user_prot_reg(master, from, len, retlen, buf);
2285 struct mtd_info *master = mtd_get_master(mtd);
2289 if (!master->_write_user_prot_reg)
2293 ret = master->_write_user_prot_reg(master, to, len, retlen, buf);
2307 struct mtd_info *master = mtd_get_master(mtd);
2309 if (!master->_lock_user_prot_reg)
2313 return master->_lock_user_prot_reg(master, from, len);
2319 struct mtd_info *master = mtd_get_master(mtd);
2321 if (!master->_erase_user_prot_reg)
2325 return master->_erase_user_prot_reg(master, from, len);
2332 struct mtd_info *master = mtd_get_master(mtd);
2334 if (!master->_lock)
2342 ofs = (loff_t)mtd_div_by_eb(ofs, mtd) * master->erasesize;
2343 len = (u64)mtd_div_by_eb(len, mtd) * master->erasesize;
2346 return master->_lock(master, mtd_get_master_ofs(mtd, ofs), len);
2352 struct mtd_info *master = mtd_get_master(mtd);
2354 if (!master->_unlock)
2362 ofs = (loff_t)mtd_div_by_eb(ofs, mtd) * master->erasesize;
2363 len = (u64)mtd_div_by_eb(len, mtd) * master->erasesize;
2366 return master->_unlock(master, mtd_get_master_ofs(mtd, ofs), len);
2372 struct mtd_info *master = mtd_get_master(mtd);
2374 if (!master->_is_locked)
2382 ofs = (loff_t)mtd_div_by_eb(ofs, mtd) * master->erasesize;
2383 len = (u64)mtd_div_by_eb(len, mtd) * master->erasesize;
2386 return master->_is_locked(master, mtd_get_master_ofs(mtd, ofs), len);
2392 struct mtd_info *master = mtd_get_master(mtd);
2396 if (!master->_block_isreserved)
2400 ofs = (loff_t)mtd_div_by_eb(ofs, mtd) * master->erasesize;
2402 return master->_block_isreserved(master, mtd_get_master_ofs(mtd, ofs));
2408 struct mtd_info *master = mtd_get_master(mtd);
2412 if (!master->_block_isbad)
2416 ofs = (loff_t)mtd_div_by_eb(ofs, mtd) * master->erasesize;
2418 return master->_block_isbad(master, mtd_get_master_ofs(mtd, ofs));
2424 struct mtd_info *master = mtd_get_master(mtd);
2428 if (!master->_block_markbad)
2436 ofs = (loff_t)mtd_div_by_eb(ofs, mtd) * master->erasesize;
2440 if (master->_block_isbad) {
2441 ret = master->_block_isbad(master, moffs);
2446 ret = master->_block_markbad(master, moffs);
2506 struct mtd_info *master = mtd_get_master(mtd);
2512 if (!master->_writev)
2515 return master->_writev(master, vecs, count,