• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asus-wl-520gu-7.0.1.45/src/linux/linux/drivers/mtd/

Lines Matching refs:mtd

16 #include <linux/mtd/mtd.h>
17 #include <linux/mtd/concat.h>
26 struct mtd_info mtd;
51 static int concat_read (struct mtd_info *mtd, loff_t from, size_t len,
54 struct mtd_concat *concat = CONCAT(mtd);
95 static int concat_write (struct mtd_info *mtd, loff_t to, size_t len,
98 struct mtd_concat *concat = CONCAT(mtd);
102 if (!(mtd->flags & MTD_WRITEABLE))
150 static int concat_dev_erase(struct mtd_info *mtd, struct erase_info *erase)
161 erase->mtd = mtd;
165 err = mtd->erase(mtd, erase);
180 static int concat_erase (struct mtd_info *mtd, struct erase_info *instr)
182 struct mtd_concat *concat = CONCAT(mtd);
188 if (!(mtd->flags & MTD_WRITEABLE))
191 if(instr->addr > concat->mtd.size)
194 if(instr->len + instr->addr > concat->mtd.size)
203 if (!concat->mtd.numeraseregions)
205 if(instr->addr & (concat->mtd.erasesize - 1))
207 if(instr->len & (concat->mtd.erasesize - 1))
212 struct mtd_erase_region_info *erase_regions = concat->mtd.eraseregions;
217 for(i = 0; i < concat->mtd.numeraseregions &&
233 for(; i < concat->mtd.numeraseregions &&
309 static int concat_lock (struct mtd_info *mtd, loff_t ofs, size_t len)
311 struct mtd_concat *concat = CONCAT(mtd);
314 if ((len + ofs) > mtd->size)
350 static int concat_unlock (struct mtd_info *mtd, loff_t ofs, size_t len)
352 struct mtd_concat *concat = CONCAT(mtd);
355 if ((len + ofs) > mtd->size)
391 static void concat_sync(struct mtd_info *mtd)
393 struct mtd_concat *concat = CONCAT(mtd);
403 static int concat_suspend(struct mtd_info *mtd)
405 struct mtd_concat *concat = CONCAT(mtd);
417 static void concat_resume(struct mtd_info *mtd)
419 struct mtd_concat *concat = CONCAT(mtd);
467 concat->mtd.type = subdev[0]->type;
468 concat->mtd.flags = subdev[0]->flags;
469 concat->mtd.size = subdev[0]->size;
470 concat->mtd.erasesize = subdev[0]->erasesize;
471 concat->mtd.oobblock = subdev[0]->oobblock;
472 concat->mtd.oobsize = subdev[0]->oobsize;
473 concat->mtd.ecctype = subdev[0]->ecctype;
474 concat->mtd.eccsize = subdev[0]->eccsize;
480 if(concat->mtd.type != subdev[i]->type)
486 if(concat->mtd.flags != subdev[i]->flags)
491 if((concat->mtd.flags ^ subdev[i]->flags) & ~MTD_WRITEABLE)
498 concat->mtd.flags |= subdev[i]->flags & MTD_WRITEABLE;
500 concat->mtd.size += subdev[i]->size;
501 if(concat->mtd.oobblock != subdev[i]->oobblock ||
502 concat->mtd.oobsize != subdev[i]->oobsize ||
503 concat->mtd.ecctype != subdev[i]->ecctype ||
504 concat->mtd.eccsize != subdev[i]->eccsize)
515 concat->mtd.name = name;
522 concat->mtd.erase = concat_erase;
523 concat->mtd.read = concat_read;
524 concat->mtd.write = concat_write;
525 concat->mtd.sync = concat_sync;
526 concat->mtd.lock = concat_lock;
527 concat->mtd.unlock = concat_unlock;
528 concat->mtd.suspend = concat_suspend;
529 concat->mtd.resume = concat_resume;
573 concat->mtd.erasesize = curr_erasesize;
574 concat->mtd.numeraseregions = 0;
584 concat->mtd.erasesize = max_erasesize;
585 concat->mtd.numeraseregions = num_erase_region;
586 concat->mtd.eraseregions = erase_region_p = kmalloc (
646 return &concat->mtd;
653 void mtd_concat_destroy(struct mtd_info *mtd)
655 struct mtd_concat *concat = CONCAT(mtd);
656 if(concat->mtd.numeraseregions)
657 kfree(concat->mtd.eraseregions);