Lines Matching full:parent
45 * @parent: parent mtd - flash device or another partition
50 struct mtd_info *parent; member
77 stats = part->parent->ecc_stats; in part_read()
78 res = part->parent->_read(part->parent, from + part->offset, len, in part_read()
82 part->parent->ecc_stats.failed - stats.failed; in part_read()
85 part->parent->ecc_stats.corrected - stats.corrected; in part_read()
94 return part->parent->_point(part->parent, from + part->offset, len, in part_point()
102 return part->parent->_unpoint(part->parent, from + part->offset, len); in part_unpoint()
112 stats = part->parent->ecc_stats; in part_read_oob()
113 res = part->parent->_read_oob(part->parent, from + part->offset, ops); in part_read_oob()
116 part->parent->ecc_stats.failed - stats.failed; in part_read_oob()
119 part->parent->ecc_stats.corrected - stats.corrected; in part_read_oob()
127 return part->parent->_read_user_prot_reg(part->parent, from, len, in part_read_user_prot_reg()
135 return part->parent->_get_user_prot_info(part->parent, len, retlen, in part_get_user_prot_info()
143 return part->parent->_read_fact_prot_reg(part->parent, from, len, in part_read_fact_prot_reg()
151 return part->parent->_get_fact_prot_info(part->parent, len, retlen, in part_get_fact_prot_info()
159 return part->parent->_write(part->parent, to + part->offset, len, in part_write()
167 return part->parent->_panic_write(part->parent, to + part->offset, len, in part_panic_write()
176 return part->parent->_write_oob(part->parent, to + part->offset, ops); in part_write_oob()
183 return part->parent->_write_user_prot_reg(part->parent, from, len, in part_write_user_prot_reg()
191 return part->parent->_lock_user_prot_reg(part->parent, from, len); in part_lock_user_prot_reg()
198 return part->parent->_writev(part->parent, vecs, count, in part_writev()
208 ret = part->parent->_erase(part->parent, instr); in part_erase()
219 return part->parent->_lock(part->parent, ofs + part->offset, len); in part_lock()
225 return part->parent->_unlock(part->parent, ofs + part->offset, len); in part_unlock()
231 return part->parent->_is_locked(part->parent, ofs + part->offset, len); in part_is_locked()
237 part->parent->_sync(part->parent); in part_sync()
243 return part->parent->_suspend(part->parent); in part_suspend()
249 part->parent->_resume(part->parent); in part_resume()
256 return part->parent->_block_isreserved(part->parent, ofs); in part_block_isreserved()
263 return part->parent->_block_isbad(part->parent, ofs); in part_block_isbad()
272 res = part->parent->_block_markbad(part->parent, ofs); in part_block_markbad()
281 return part->parent->_get_device(part->parent); in part_get_device()
287 part->parent->_put_device(part->parent); in part_put_device()
295 return mtd_ooblayout_ecc(part->parent, section, oobregion); in part_ooblayout_ecc()
303 return mtd_ooblayout_free(part->parent, section, oobregion); in part_ooblayout_free()
315 return part->parent->_max_bad_blocks(part->parent, in part_max_bad_blocks()
325 static struct mtd_part *allocate_partition(struct mtd_info *parent, in allocate_partition() argument
329 int wr_alignment = (parent->flags & MTD_NO_ERASE) ? parent->writesize : in allocate_partition()
330 parent->erasesize; in allocate_partition()
341 parent->name); in allocate_partition()
348 slave->mtd.type = parent->type; in allocate_partition()
349 slave->mtd.flags = parent->flags & ~part->mask_flags; in allocate_partition()
351 slave->mtd.writesize = parent->writesize; in allocate_partition()
352 slave->mtd.writebufsize = parent->writebufsize; in allocate_partition()
353 slave->mtd.oobsize = parent->oobsize; in allocate_partition()
354 slave->mtd.oobavail = parent->oobavail; in allocate_partition()
355 slave->mtd.subpage_sft = parent->subpage_sft; in allocate_partition()
356 slave->mtd.pairing = parent->pairing; in allocate_partition()
359 slave->mtd.owner = parent->owner; in allocate_partition()
366 * parent conditional on that option. Note, this is a way to in allocate_partition()
369 slave->mtd.dev.parent = IS_ENABLED(CONFIG_MTD_PARTITIONED_MASTER) || mtd_is_partition(parent) ? in allocate_partition()
370 &parent->dev : in allocate_partition()
371 parent->dev.parent; in allocate_partition()
374 if (parent->_read) in allocate_partition()
376 if (parent->_write) in allocate_partition()
379 if (parent->_panic_write) in allocate_partition()
382 if (parent->_point && parent->_unpoint) { in allocate_partition()
387 if (parent->_read_oob) in allocate_partition()
389 if (parent->_write_oob) in allocate_partition()
391 if (parent->_read_user_prot_reg) in allocate_partition()
393 if (parent->_read_fact_prot_reg) in allocate_partition()
395 if (parent->_write_user_prot_reg) in allocate_partition()
397 if (parent->_lock_user_prot_reg) in allocate_partition()
399 if (parent->_get_user_prot_info) in allocate_partition()
401 if (parent->_get_fact_prot_info) in allocate_partition()
403 if (parent->_sync) in allocate_partition()
405 if (!partno && !parent->dev.class && parent->_suspend && in allocate_partition()
406 parent->_resume) { in allocate_partition()
410 if (parent->_writev) in allocate_partition()
412 if (parent->_lock) in allocate_partition()
414 if (parent->_unlock) in allocate_partition()
416 if (parent->_is_locked) in allocate_partition()
418 if (parent->_block_isreserved) in allocate_partition()
420 if (parent->_block_isbad) in allocate_partition()
422 if (parent->_block_markbad) in allocate_partition()
424 if (parent->_max_bad_blocks) in allocate_partition()
427 if (parent->_get_device) in allocate_partition()
429 if (parent->_put_device) in allocate_partition()
433 slave->parent = parent; in allocate_partition()
451 if (parent->size - slave->offset >= slave->mtd.size) { in allocate_partition()
452 slave->mtd.size = parent->size - slave->offset in allocate_partition()
456 part->name, parent->size - slave->offset, in allocate_partition()
463 slave->mtd.size = parent->size - slave->offset; in allocate_partition()
469 if (slave->offset >= parent->size) { in allocate_partition()
475 slave->mtd.erasesize = parent->erasesize; in allocate_partition()
481 if (slave->offset + slave->mtd.size > parent->size) { in allocate_partition()
482 slave->mtd.size = parent->size - slave->offset; in allocate_partition()
484 part->name, parent->name, (unsigned long long)slave->mtd.size); in allocate_partition()
486 if (parent->numeraseregions > 1) { in allocate_partition()
488 int i, max = parent->numeraseregions; in allocate_partition()
490 struct mtd_erase_region_info *regions = parent->eraseregions; in allocate_partition()
509 slave->mtd.erasesize = parent->erasesize; in allocate_partition()
540 slave->mtd.ecc_step_size = parent->ecc_step_size; in allocate_partition()
541 slave->mtd.ecc_strength = parent->ecc_strength; in allocate_partition()
542 slave->mtd.bitflip_threshold = parent->bitflip_threshold; in allocate_partition()
544 if (parent->_block_isbad) { in allocate_partition()
548 if (mtd_block_isreserved(parent, offs + slave->offset)) in allocate_partition()
550 else if (mtd_block_isbad(parent, offs + slave->offset)) in allocate_partition()
584 int mtd_add_partition(struct mtd_info *parent, const char *name, in mtd_add_partition() argument
597 length = parent->size - offset; in mtd_add_partition()
607 new = allocate_partition(parent, &part, -1, offset); in mtd_add_partition()
647 if (child->parent == &priv->mtd) { in __mtd_del_partition()
677 if (slave->parent == mtd) { in del_mtd_partitions()
694 if ((slave->parent == mtd) && in mtd_del_partition()
1053 return mtd_get_device_size(mtd_to_part(mtd)->parent); in mtd_get_device_size()