• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/mtd/

Lines Matching refs:subdev

33 	struct mtd_info **subdev;
38 * including the pointer array subdev points to:
65 struct mtd_info *subdev = concat->subdev[i];
68 if (from >= subdev->size) {
69 /* Not destined for this subdev */
71 from -= subdev->size;
74 if (from + len > subdev->size)
75 /* First part goes into this subdev */
76 size = subdev->size - from;
78 /* Entire transaction goes into this subdev */
81 err = subdev->read(subdev, from, size, &retsize, buf);
122 struct mtd_info *subdev = concat->subdev[i];
125 if (to >= subdev->size) {
127 to -= subdev->size;
130 if (to + len > subdev->size)
131 size = subdev->size - to;
135 if (!(subdev->flags & MTD_WRITEABLE))
138 err = subdev->write(subdev, to, size, &retsize, buf);
194 struct mtd_info *subdev = concat->subdev[i];
197 if (to >= subdev->size) {
198 to -= subdev->size;
202 size = min(total_len, (size_t)(subdev->size - to));
215 if (!(subdev->flags & MTD_WRITEABLE))
218 err = subdev->writev(subdev, &vecs_copy[entry_low],
253 struct mtd_info *subdev = concat->subdev[i];
255 if (from >= subdev->size) {
256 from -= subdev->size;
261 if (from + devops.len > subdev->size)
262 devops.len = subdev->size - from;
264 err = subdev->read_oob(subdev, from, &devops);
313 struct mtd_info *subdev = concat->subdev[i];
315 if (to >= subdev->size) {
316 to -= subdev->size;
321 if (to + devops.len > subdev->size)
322 devops.len = subdev->size - to;
324 err = subdev->write_oob(subdev, to, &devops);
384 struct mtd_info *subdev;
461 subdev = concat->subdev[i];
462 if (subdev->size <= erase->addr) {
463 erase->addr -= subdev->size;
464 offset += subdev->size;
477 subdev = concat->subdev[i]; /* get current subdevice */
480 if (erase->addr + length > subdev->size)
481 erase->len = subdev->size - erase->addr;
485 if (!(subdev->flags & MTD_WRITEABLE)) {
490 if ((err = concat_dev_erase(subdev, erase))) {
507 offset += subdev->size;
528 struct mtd_info *subdev = concat->subdev[i];
531 if (ofs >= subdev->size) {
533 ofs -= subdev->size;
536 if (ofs + len > subdev->size)
537 size = subdev->size - ofs;
541 err = subdev->lock(subdev, ofs, size);
566 struct mtd_info *subdev = concat->subdev[i];
569 if (ofs >= subdev->size) {
571 ofs -= subdev->size;
574 if (ofs + len > subdev->size)
575 size = subdev->size - ofs;
579 err = subdev->unlock(subdev, ofs, size);
601 struct mtd_info *subdev = concat->subdev[i];
602 subdev->sync(subdev);
612 struct mtd_info *subdev = concat->subdev[i];
613 if ((rc = subdev->suspend(subdev)) < 0)
625 struct mtd_info *subdev = concat->subdev[i];
626 subdev->resume(subdev);
635 if (!concat->subdev[0]->block_isbad)
642 struct mtd_info *subdev = concat->subdev[i];
644 if (ofs >= subdev->size) {
645 ofs -= subdev->size;
649 res = subdev->block_isbad(subdev, ofs);
661 if (!concat->subdev[0]->block_markbad)
668 struct mtd_info *subdev = concat->subdev[i];
670 if (ofs >= subdev->size) {
671 ofs -= subdev->size;
675 err = subdev->block_markbad(subdev, ofs);
690 struct mtd_info *mtd_concat_create(struct mtd_info *subdev[], /* subdevices to concatenate */
702 printk(KERN_NOTICE "(%d): \"%s\"\n", i, subdev[i]->name);
714 concat->subdev = (struct mtd_info **) (concat + 1);
720 concat->mtd.type = subdev[0]->type;
721 concat->mtd.flags = subdev[0]->flags;
722 concat->mtd.size = subdev[0]->size;
723 concat->mtd.erasesize = subdev[0]->erasesize;
724 concat->mtd.writesize = subdev[0]->writesize;
725 concat->mtd.oobsize = subdev[0]->oobsize;
726 concat->mtd.oobavail = subdev[0]->oobavail;
727 if (subdev[0]->writev)
729 if (subdev[0]->read_oob)
731 if (subdev[0]->write_oob)
733 if (subdev[0]->block_isbad)
735 if (subdev[0]->block_markbad)
738 concat->mtd.ecc_stats.badblocks = subdev[0]->ecc_stats.badblocks;
740 concat->subdev[0] = subdev[0];
743 if (concat->mtd.type != subdev[i]->type) {
746 subdev[i]->name);
749 if (concat->mtd.flags != subdev[i]->flags) {
754 if ((concat->mtd.flags ^ subdev[i]->
758 subdev[i]->name);
764 subdev[i]->flags & MTD_WRITEABLE;
766 concat->mtd.size += subdev[i]->size;
768 subdev[i]->ecc_stats.badblocks;
769 if (concat->mtd.writesize != subdev[i]->writesize ||
770 concat->mtd.subpage_sft != subdev[i]->subpage_sft ||
771 concat->mtd.oobsize != subdev[i]->oobsize ||
772 !concat->mtd.read_oob != !subdev[i]->read_oob ||
773 !concat->mtd.write_oob != !subdev[i]->write_oob) {
776 subdev[i]->name);
779 concat->subdev[i] = subdev[i];
783 concat->mtd.ecclayout = subdev[0]->ecclayout;
803 max_erasesize = curr_erasesize = subdev[0]->erasesize;
806 if (subdev[i]->numeraseregions == 0) {
808 if (subdev[i]->erasesize != curr_erasesize) {
811 curr_erasesize = subdev[i]->erasesize;
818 for (j = 0; j < subdev[i]->numeraseregions; j++) {
821 if (subdev[i]->eraseregions[j].erasesize !=
825 subdev[i]->eraseregions[j].
866 curr_erasesize = subdev[0]->erasesize;
869 if (subdev[i]->numeraseregions == 0) {
871 if (subdev[i]->erasesize != curr_erasesize) {
883 curr_erasesize = subdev[i]->erasesize;
886 position += subdev[i]->size;
890 for (j = 0; j < subdev[i]->numeraseregions; j++) {
892 if (subdev[i]->eraseregions[j].
903 subdev[i]->eraseregions[j].
908 subdev[i]->eraseregions[j].