aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mtd/tests/mtd_speedtest.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/mtd/tests/mtd_speedtest.c')
-rw-r--r--drivers/mtd/tests/mtd_speedtest.c37
1 files changed, 18 insertions, 19 deletions
diff --git a/drivers/mtd/tests/mtd_speedtest.c b/drivers/mtd/tests/mtd_speedtest.c
index 493b367bdd35..2aec4f3b72be 100644
--- a/drivers/mtd/tests/mtd_speedtest.c
+++ b/drivers/mtd/tests/mtd_speedtest.c
@@ -79,7 +79,7 @@ static int erase_eraseblock(int ebnum)
79 ei.addr = addr; 79 ei.addr = addr;
80 ei.len = mtd->erasesize; 80 ei.len = mtd->erasesize;
81 81
82 err = mtd->erase(mtd, &ei); 82 err = mtd_erase(mtd, &ei);
83 if (err) { 83 if (err) {
84 printk(PRINT_PREF "error %d while erasing EB %d\n", err, ebnum); 84 printk(PRINT_PREF "error %d while erasing EB %d\n", err, ebnum);
85 return err; 85 return err;
@@ -105,7 +105,7 @@ static int multiblock_erase(int ebnum, int blocks)
105 ei.addr = addr; 105 ei.addr = addr;
106 ei.len = mtd->erasesize * blocks; 106 ei.len = mtd->erasesize * blocks;
107 107
108 err = mtd->erase(mtd, &ei); 108 err = mtd_erase(mtd, &ei);
109 if (err) { 109 if (err) {
110 printk(PRINT_PREF "error %d while erasing EB %d, blocks %d\n", 110 printk(PRINT_PREF "error %d while erasing EB %d, blocks %d\n",
111 err, ebnum, blocks); 111 err, ebnum, blocks);
@@ -139,11 +139,11 @@ static int erase_whole_device(void)
139 139
140static int write_eraseblock(int ebnum) 140static int write_eraseblock(int ebnum)
141{ 141{
142 size_t written = 0; 142 size_t written;
143 int err = 0; 143 int err = 0;
144 loff_t addr = ebnum * mtd->erasesize; 144 loff_t addr = ebnum * mtd->erasesize;
145 145
146 err = mtd->write(mtd, addr, mtd->erasesize, &written, iobuf); 146 err = mtd_write(mtd, addr, mtd->erasesize, &written, iobuf);
147 if (err || written != mtd->erasesize) { 147 if (err || written != mtd->erasesize) {
148 printk(PRINT_PREF "error: write failed at %#llx\n", addr); 148 printk(PRINT_PREF "error: write failed at %#llx\n", addr);
149 if (!err) 149 if (!err)
@@ -155,13 +155,13 @@ static int write_eraseblock(int ebnum)
155 155
156static int write_eraseblock_by_page(int ebnum) 156static int write_eraseblock_by_page(int ebnum)
157{ 157{
158 size_t written = 0; 158 size_t written;
159 int i, err = 0; 159 int i, err = 0;
160 loff_t addr = ebnum * mtd->erasesize; 160 loff_t addr = ebnum * mtd->erasesize;
161 void *buf = iobuf; 161 void *buf = iobuf;
162 162
163 for (i = 0; i < pgcnt; i++) { 163 for (i = 0; i < pgcnt; i++) {
164 err = mtd->write(mtd, addr, pgsize, &written, buf); 164 err = mtd_write(mtd, addr, pgsize, &written, buf);
165 if (err || written != pgsize) { 165 if (err || written != pgsize) {
166 printk(PRINT_PREF "error: write failed at %#llx\n", 166 printk(PRINT_PREF "error: write failed at %#llx\n",
167 addr); 167 addr);
@@ -178,13 +178,13 @@ static int write_eraseblock_by_page(int ebnum)
178 178
179static int write_eraseblock_by_2pages(int ebnum) 179static int write_eraseblock_by_2pages(int ebnum)
180{ 180{
181 size_t written = 0, sz = pgsize * 2; 181 size_t written, sz = pgsize * 2;
182 int i, n = pgcnt / 2, err = 0; 182 int i, n = pgcnt / 2, err = 0;
183 loff_t addr = ebnum * mtd->erasesize; 183 loff_t addr = ebnum * mtd->erasesize;
184 void *buf = iobuf; 184 void *buf = iobuf;
185 185
186 for (i = 0; i < n; i++) { 186 for (i = 0; i < n; i++) {
187 err = mtd->write(mtd, addr, sz, &written, buf); 187 err = mtd_write(mtd, addr, sz, &written, buf);
188 if (err || written != sz) { 188 if (err || written != sz) {
189 printk(PRINT_PREF "error: write failed at %#llx\n", 189 printk(PRINT_PREF "error: write failed at %#llx\n",
190 addr); 190 addr);
@@ -196,7 +196,7 @@ static int write_eraseblock_by_2pages(int ebnum)
196 buf += sz; 196 buf += sz;
197 } 197 }
198 if (pgcnt % 2) { 198 if (pgcnt % 2) {
199 err = mtd->write(mtd, addr, pgsize, &written, buf); 199 err = mtd_write(mtd, addr, pgsize, &written, buf);
200 if (err || written != pgsize) { 200 if (err || written != pgsize) {
201 printk(PRINT_PREF "error: write failed at %#llx\n", 201 printk(PRINT_PREF "error: write failed at %#llx\n",
202 addr); 202 addr);
@@ -210,11 +210,11 @@ static int write_eraseblock_by_2pages(int ebnum)
210 210
211static int read_eraseblock(int ebnum) 211static int read_eraseblock(int ebnum)
212{ 212{
213 size_t read = 0; 213 size_t read;
214 int err = 0; 214 int err = 0;
215 loff_t addr = ebnum * mtd->erasesize; 215 loff_t addr = ebnum * mtd->erasesize;
216 216
217 err = mtd->read(mtd, addr, mtd->erasesize, &read, iobuf); 217 err = mtd_read(mtd, addr, mtd->erasesize, &read, iobuf);
218 /* Ignore corrected ECC errors */ 218 /* Ignore corrected ECC errors */
219 if (mtd_is_bitflip(err)) 219 if (mtd_is_bitflip(err))
220 err = 0; 220 err = 0;
@@ -229,13 +229,13 @@ static int read_eraseblock(int ebnum)
229 229
230static int read_eraseblock_by_page(int ebnum) 230static int read_eraseblock_by_page(int ebnum)
231{ 231{
232 size_t read = 0; 232 size_t read;
233 int i, err = 0; 233 int i, err = 0;
234 loff_t addr = ebnum * mtd->erasesize; 234 loff_t addr = ebnum * mtd->erasesize;
235 void *buf = iobuf; 235 void *buf = iobuf;
236 236
237 for (i = 0; i < pgcnt; i++) { 237 for (i = 0; i < pgcnt; i++) {
238 err = mtd->read(mtd, addr, pgsize, &read, buf); 238 err = mtd_read(mtd, addr, pgsize, &read, buf);
239 /* Ignore corrected ECC errors */ 239 /* Ignore corrected ECC errors */
240 if (mtd_is_bitflip(err)) 240 if (mtd_is_bitflip(err))
241 err = 0; 241 err = 0;
@@ -255,13 +255,13 @@ static int read_eraseblock_by_page(int ebnum)
255 255
256static int read_eraseblock_by_2pages(int ebnum) 256static int read_eraseblock_by_2pages(int ebnum)
257{ 257{
258 size_t read = 0, sz = pgsize * 2; 258 size_t read, sz = pgsize * 2;
259 int i, n = pgcnt / 2, err = 0; 259 int i, n = pgcnt / 2, err = 0;
260 loff_t addr = ebnum * mtd->erasesize; 260 loff_t addr = ebnum * mtd->erasesize;
261 void *buf = iobuf; 261 void *buf = iobuf;
262 262
263 for (i = 0; i < n; i++) { 263 for (i = 0; i < n; i++) {
264 err = mtd->read(mtd, addr, sz, &read, buf); 264 err = mtd_read(mtd, addr, sz, &read, buf);
265 /* Ignore corrected ECC errors */ 265 /* Ignore corrected ECC errors */
266 if (mtd_is_bitflip(err)) 266 if (mtd_is_bitflip(err))
267 err = 0; 267 err = 0;
@@ -276,7 +276,7 @@ static int read_eraseblock_by_2pages(int ebnum)
276 buf += sz; 276 buf += sz;
277 } 277 }
278 if (pgcnt % 2) { 278 if (pgcnt % 2) {
279 err = mtd->read(mtd, addr, pgsize, &read, buf); 279 err = mtd_read(mtd, addr, pgsize, &read, buf);
280 /* Ignore corrected ECC errors */ 280 /* Ignore corrected ECC errors */
281 if (mtd_is_bitflip(err)) 281 if (mtd_is_bitflip(err))
282 err = 0; 282 err = 0;
@@ -296,7 +296,7 @@ static int is_block_bad(int ebnum)
296 loff_t addr = ebnum * mtd->erasesize; 296 loff_t addr = ebnum * mtd->erasesize;
297 int ret; 297 int ret;
298 298
299 ret = mtd->block_isbad(mtd, addr); 299 ret = mtd_block_isbad(mtd, addr);
300 if (ret) 300 if (ret)
301 printk(PRINT_PREF "block %d is bad\n", ebnum); 301 printk(PRINT_PREF "block %d is bad\n", ebnum);
302 return ret; 302 return ret;
@@ -336,8 +336,7 @@ static int scan_for_bad_eraseblocks(void)
336 return -ENOMEM; 336 return -ENOMEM;
337 } 337 }
338 338
339 /* NOR flash does not implement block_isbad */ 339 if (!mtd_can_have_bb(mtd))
340 if (mtd->block_isbad == NULL)
341 goto out; 340 goto out;
342 341
343 printk(PRINT_PREF "scanning for bad eraseblocks\n"); 342 printk(PRINT_PREF "scanning for bad eraseblocks\n");