Lines Matching +full:read +full:- +full:out

1 // SPDX-License-Identifier: GPL-2.0-only
5 * Test read and write speed of a MTD device.
24 static int dev = -EINVAL;
47 loff_t addr = (loff_t)ebnum * mtd->erasesize; in multiblock_erase()
51 ei.len = mtd->erasesize * blocks; in multiblock_erase()
65 loff_t addr = (loff_t)ebnum * mtd->erasesize; in write_eraseblock()
67 return mtdtest_write(mtd, addr, mtd->erasesize, iobuf); in write_eraseblock()
73 loff_t addr = (loff_t)ebnum * mtd->erasesize; in write_eraseblock_by_page()
91 loff_t addr = (loff_t)ebnum * mtd->erasesize; in write_eraseblock_by_2pages()
109 loff_t addr = (loff_t)ebnum * mtd->erasesize; in read_eraseblock()
111 return mtdtest_read(mtd, addr, mtd->erasesize, iobuf); in read_eraseblock()
117 loff_t addr = (loff_t)ebnum * mtd->erasesize; in read_eraseblock_by_page()
135 loff_t addr = (loff_t)ebnum * mtd->erasesize; in read_eraseblock_by_2pages()
169 k = (uint64_t)goodebcnt * (mtd->erasesize / 1024) * 1000; in calc_speed()
184 pr_info("Please specify a valid mtd-device via module parameter\n"); in mtd_speedtest_init()
186 return -EINVAL; in mtd_speedtest_init()
201 if (mtd->writesize == 1) { in mtd_speedtest_init()
206 pgsize = mtd->writesize; in mtd_speedtest_init()
208 tmp = mtd->size; in mtd_speedtest_init()
209 do_div(tmp, mtd->erasesize); in mtd_speedtest_init()
211 pgcnt = mtd->erasesize / pgsize; in mtd_speedtest_init()
216 (unsigned long long)mtd->size, mtd->erasesize, in mtd_speedtest_init()
217 pgsize, ebcnt, pgcnt, mtd->oobsize); in mtd_speedtest_init()
222 err = -ENOMEM; in mtd_speedtest_init()
223 iobuf = kmalloc(mtd->erasesize, GFP_KERNEL); in mtd_speedtest_init()
225 goto out; in mtd_speedtest_init()
227 prandom_bytes(iobuf, mtd->erasesize); in mtd_speedtest_init()
231 goto out; in mtd_speedtest_init()
234 goto out; in mtd_speedtest_init()
242 goto out; in mtd_speedtest_init()
252 goto out; in mtd_speedtest_init()
256 goto out; in mtd_speedtest_init()
262 /* Read all eraseblocks, 1 eraseblock at a time */ in mtd_speedtest_init()
263 pr_info("testing eraseblock read speed\n"); in mtd_speedtest_init()
270 goto out; in mtd_speedtest_init()
274 goto out; in mtd_speedtest_init()
278 pr_info("eraseblock read speed is %ld KiB/s\n", speed); in mtd_speedtest_init()
282 goto out; in mtd_speedtest_init()
292 goto out; in mtd_speedtest_init()
296 goto out; in mtd_speedtest_init()
302 /* Read all eraseblocks, 1 page at a time */ in mtd_speedtest_init()
303 pr_info("testing page read speed\n"); in mtd_speedtest_init()
310 goto out; in mtd_speedtest_init()
314 goto out; in mtd_speedtest_init()
318 pr_info("page read speed is %ld KiB/s\n", speed); in mtd_speedtest_init()
322 goto out; in mtd_speedtest_init()
332 goto out; in mtd_speedtest_init()
336 goto out; in mtd_speedtest_init()
342 /* Read all eraseblocks, 2 pages at a time */ in mtd_speedtest_init()
343 pr_info("testing 2 page read speed\n"); in mtd_speedtest_init()
350 goto out; in mtd_speedtest_init()
354 goto out; in mtd_speedtest_init()
358 pr_info("2 page read speed is %ld KiB/s\n", speed); in mtd_speedtest_init()
365 goto out; in mtd_speedtest_init()
370 /* Multi-block erase all eraseblocks */ in mtd_speedtest_init()
373 pr_info("Testing %dx multi-block erase speed\n", in mtd_speedtest_init()
386 goto out; in mtd_speedtest_init()
390 goto out; in mtd_speedtest_init()
396 pr_info("%dx multi-block erase speed is %ld KiB/s\n", in mtd_speedtest_init()
400 out: in mtd_speedtest_init()