diff options
Diffstat (limited to 'drivers/mtd/tests/mtd_speedtest.c')
-rw-r--r-- | drivers/mtd/tests/mtd_speedtest.c | 37 |
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 | ||
140 | static int write_eraseblock(int ebnum) | 140 | static 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 | ||
156 | static int write_eraseblock_by_page(int ebnum) | 156 | static 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 | ||
179 | static int write_eraseblock_by_2pages(int ebnum) | 179 | static 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 | ||
211 | static int read_eraseblock(int ebnum) | 211 | static 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 | ||
230 | static int read_eraseblock_by_page(int ebnum) | 230 | static 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 | ||
256 | static int read_eraseblock_by_2pages(int ebnum) | 256 | static 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"); |