Lines Matching defs:mtd
17 #include <linux/mtd/mtd.h>
31 static struct mtd_info *mtd;
61 loff_t addr = (loff_t)ebnum * mtd->erasesize;
64 for (i = 0; i < pgcnt; ++i, addr += mtd->writesize) {
73 err = mtd_write_oob(mtd, addr, &ops);
170 loff_t addr = (loff_t)ebnum * mtd->erasesize;
174 for (i = 0; i < pgcnt; ++i, addr += mtd->writesize) {
183 err = mtd_read_oob(mtd, addr, &ops);
209 if (use_offset != 0 || use_len < mtd->oobavail) {
215 ops.ooblen = mtd->oobavail;
220 err = mtd_read_oob(mtd, addr, &ops);
224 if (err || ops.oobretlen != mtd->oobavail) {
241 mtd->oobavail - k);
265 loff_t addr = (loff_t)ebnum * mtd->erasesize;
266 size_t len = mtd->oobavail * pgcnt;
267 size_t oobavail = mtd->oobavail;
282 err = mtd_read_oob(mtd, addr, &ops);
294 for (i = 0; i < pgcnt; ++i, addr += mtd->writesize) {
348 pr_info("Please specify a valid mtd-device via module parameter\n");
355 mtd = get_mtd_device(NULL, dev);
356 if (IS_ERR(mtd)) {
357 err = PTR_ERR(mtd);
362 if (!mtd_type_is_nand(mtd)) {
367 tmp = mtd->size;
368 do_div(tmp, mtd->erasesize);
370 pgcnt = mtd->erasesize / mtd->writesize;
375 (unsigned long long)mtd->size, mtd->erasesize,
376 mtd->writesize, ebcnt, pgcnt, mtd->oobsize);
379 readbuf = kmalloc(mtd->erasesize, GFP_KERNEL);
382 writebuf = kmalloc(mtd->erasesize, GFP_KERNEL);
389 err = mtdtest_scan_for_bad_eraseblocks(mtd, bbt, 0, ebcnt);
394 use_len = mtd->oobavail;
395 use_len_max = mtd->oobavail;
401 err = mtdtest_erase_good_eraseblocks(mtd, bbt, 0, ebcnt);
421 err = mtdtest_erase_good_eraseblocks(mtd, bbt, 0, ebcnt);
454 err = mtdtest_erase_good_eraseblocks(mtd, bbt, 0, ebcnt);
460 use_len = mtd->oobavail;
461 use_len_max = mtd->oobavail;
471 use_len = mtd->oobavail;
472 use_len_max = mtd->oobavail;
480 use_len = mtd->oobavail;
481 use_len_max = mtd->oobavail;
487 err = mtdtest_erase_good_eraseblocks(mtd, bbt, 0, ebcnt);
493 addr0 += mtd->erasesize;
501 ops.ooboffs = mtd->oobavail;
506 err = mtd_write_oob(mtd, addr0, &ops);
521 ops.ooboffs = mtd->oobavail;
526 err = mtd_read_oob(mtd, addr0, &ops);
546 ops.ooblen = mtd->oobavail + 1;
553 err = mtd_write_oob(mtd, mtd->size - mtd->writesize, &ops);
566 ops.ooblen = mtd->oobavail + 1;
573 err = mtd_read_oob(mtd, mtd->size - mtd->writesize, &ops);
585 err = mtdtest_erase_eraseblock(mtd, ebcnt - 1);
593 ops.ooblen = mtd->oobavail;
600 err = mtd_write_oob(mtd, mtd->size - mtd->writesize, &ops);
613 ops.ooblen = mtd->oobavail;
620 err = mtd_read_oob(mtd, mtd->size - mtd->writesize, &ops);
637 err = mtdtest_erase_good_eraseblocks(mtd, bbt, 0, ebcnt);
647 size_t sz = mtd->oobavail;
650 addr = (loff_t)(i + 1) * mtd->erasesize - mtd->writesize;
661 err = mtd_write_oob(mtd, addr, &ops);
671 addr += mtd->writesize;
682 prandom_bytes_state(&rnd_state, writebuf, mtd->oobavail * 2);
683 addr = (loff_t)(i + 1) * mtd->erasesize - mtd->writesize;
687 ops.ooblen = mtd->oobavail * 2;
692 err = mtd_read_oob(mtd, addr, &ops);
699 mtd->oobavail * 2)) {
722 put_mtd_device(mtd);