Lines Matching refs:master
44 struct mtd_info *master; member
68 stats = part->master->ecc_stats; in part_read()
69 res = part->master->_read(part->master, from + part->offset, len, in part_read()
73 part->master->ecc_stats.failed - stats.failed; in part_read()
76 part->master->ecc_stats.corrected - stats.corrected; in part_read()
85 return part->master->_point(part->master, from + part->offset, len, in part_point()
93 return part->master->_unpoint(part->master, from + part->offset, len); in part_unpoint()
104 return part->master->_get_unmapped_area(part->master, len, offset, in part_get_unmapped_area()
136 res = part->master->_read_oob(part->master, from + part->offset, ops); in part_read_oob()
150 return part->master->_read_user_prot_reg(part->master, from, len, in part_read_user_prot_reg()
158 return part->master->_get_user_prot_info(part->master, len, retlen, in part_get_user_prot_info()
166 return part->master->_read_fact_prot_reg(part->master, from, len, in part_read_fact_prot_reg()
174 return part->master->_get_fact_prot_info(part->master, len, retlen, in part_get_fact_prot_info()
182 return part->master->_write(part->master, to + part->offset, len, in part_write()
190 return part->master->_panic_write(part->master, to + part->offset, len, in part_panic_write()
203 return part->master->_write_oob(part->master, to + part->offset, ops); in part_write_oob()
210 return part->master->_write_user_prot_reg(part->master, from, len, in part_write_user_prot_reg()
218 return part->master->_lock_user_prot_reg(part->master, from, len); in part_lock_user_prot_reg()
225 return part->master->_writev(part->master, vecs, count, in part_writev()
235 ret = part->master->_erase(part->master, instr); in part_erase()
261 return part->master->_lock(part->master, ofs + part->offset, len); in part_lock()
267 return part->master->_unlock(part->master, ofs + part->offset, len); in part_unlock()
273 return part->master->_is_locked(part->master, ofs + part->offset, len); in part_is_locked()
279 part->master->_sync(part->master); in part_sync()
285 return part->master->_suspend(part->master); in part_suspend()
291 part->master->_resume(part->master); in part_resume()
298 return part->master->_block_isreserved(part->master, ofs); in part_block_isreserved()
305 return part->master->_block_isbad(part->master, ofs); in part_block_isbad()
314 res = part->master->_block_markbad(part->master, ofs); in part_block_markbad()
331 int del_mtd_partitions(struct mtd_info *master) in del_mtd_partitions() argument
338 if (slave->master == master) { in del_mtd_partitions()
352 static struct mtd_part *allocate_partition(struct mtd_info *master, in allocate_partition() argument
364 master->name); in allocate_partition()
371 slave->mtd.type = master->type; in allocate_partition()
372 slave->mtd.flags = master->flags & ~part->mask_flags; in allocate_partition()
374 slave->mtd.writesize = master->writesize; in allocate_partition()
375 slave->mtd.writebufsize = master->writebufsize; in allocate_partition()
376 slave->mtd.oobsize = master->oobsize; in allocate_partition()
377 slave->mtd.oobavail = master->oobavail; in allocate_partition()
378 slave->mtd.subpage_sft = master->subpage_sft; in allocate_partition()
381 slave->mtd.owner = master->owner; in allocate_partition()
392 &master->dev : in allocate_partition()
393 master->dev.parent; in allocate_partition()
398 if (master->_panic_write) in allocate_partition()
401 if (master->_point && master->_unpoint) { in allocate_partition()
406 if (master->_get_unmapped_area) in allocate_partition()
408 if (master->_read_oob) in allocate_partition()
410 if (master->_write_oob) in allocate_partition()
412 if (master->_read_user_prot_reg) in allocate_partition()
414 if (master->_read_fact_prot_reg) in allocate_partition()
416 if (master->_write_user_prot_reg) in allocate_partition()
418 if (master->_lock_user_prot_reg) in allocate_partition()
420 if (master->_get_user_prot_info) in allocate_partition()
422 if (master->_get_fact_prot_info) in allocate_partition()
424 if (master->_sync) in allocate_partition()
426 if (!partno && !master->dev.class && master->_suspend && in allocate_partition()
427 master->_resume) { in allocate_partition()
431 if (master->_writev) in allocate_partition()
433 if (master->_lock) in allocate_partition()
435 if (master->_unlock) in allocate_partition()
437 if (master->_is_locked) in allocate_partition()
439 if (master->_block_isreserved) in allocate_partition()
441 if (master->_block_isbad) in allocate_partition()
443 if (master->_block_markbad) in allocate_partition()
446 slave->master = master; in allocate_partition()
453 if (mtd_mod_by_eb(cur_offset, master) != 0) { in allocate_partition()
455 slave->offset = (mtd_div_by_eb(cur_offset, master) + 1) * master->erasesize; in allocate_partition()
463 if (master->size - slave->offset >= slave->mtd.size) { in allocate_partition()
464 slave->mtd.size = master->size - slave->offset in allocate_partition()
468 part->name, master->size - slave->offset, in allocate_partition()
475 slave->mtd.size = master->size - slave->offset; in allocate_partition()
481 if (slave->offset >= master->size) { in allocate_partition()
489 if (slave->offset + slave->mtd.size > master->size) { in allocate_partition()
490 slave->mtd.size = master->size - slave->offset; in allocate_partition()
492 part->name, master->name, (unsigned long long)slave->mtd.size); in allocate_partition()
494 if (master->numeraseregions > 1) { in allocate_partition()
496 int i, max = master->numeraseregions; in allocate_partition()
498 struct mtd_erase_region_info *regions = master->eraseregions; in allocate_partition()
517 slave->mtd.erasesize = master->erasesize; in allocate_partition()
536 slave->mtd.ecclayout = master->ecclayout; in allocate_partition()
537 slave->mtd.ecc_step_size = master->ecc_step_size; in allocate_partition()
538 slave->mtd.ecc_strength = master->ecc_strength; in allocate_partition()
539 slave->mtd.bitflip_threshold = master->bitflip_threshold; in allocate_partition()
541 if (master->_block_isbad) { in allocate_partition()
545 if (mtd_block_isreserved(master, offs + slave->offset)) in allocate_partition()
547 else if (mtd_block_isbad(master, offs + slave->offset)) in allocate_partition()
581 int mtd_add_partition(struct mtd_info *master, const char *name, in mtd_add_partition() argument
594 length = master->size - offset; in mtd_add_partition()
605 new = allocate_partition(master, &part, -1, offset); in mtd_add_partition()
632 int mtd_del_partition(struct mtd_info *master, int partno) in mtd_del_partition() argument
639 if ((slave->master == master) && in mtd_del_partition()
666 int add_mtd_partitions(struct mtd_info *master, in add_mtd_partitions() argument
674 printk(KERN_NOTICE "Creating %d MTD partitions on \"%s\":\n", nbparts, master->name); in add_mtd_partitions()
677 slave = allocate_partition(master, parts + i, i, cur_offset); in add_mtd_partitions()
705 del_mtd_partitions(master); in add_mtd_partitions()
778 int parse_mtd_partitions(struct mtd_info *master, const char *const *types, in parse_mtd_partitions() argument
789 pr_debug("%s: parsing partitions %s\n", master->name, *types); in parse_mtd_partitions()
793 pr_debug("%s: got parser %s\n", master->name, in parse_mtd_partitions()
797 ret = (*parser->parse_fn)(master, pparts, data); in parse_mtd_partitions()
799 master->name, parser->name, ret); in parse_mtd_partitions()
803 ret, parser->name, master->name); in parse_mtd_partitions()
839 return PART(mtd)->master->size; in mtd_get_device_size()