Lines Matching refs:mtd

49 	struct mtd_info *mtd;  member
76 struct mtd_info *mtd = cxt->mtd; in mtdoops_erase_block() local
77 u32 start_page_offset = mtd_div_by_eb(offset, mtd) * mtd->erasesize; in mtdoops_erase_block()
79 u32 erase_pages = mtd->erasesize / record_size; in mtdoops_erase_block()
85 erase.len = mtd->erasesize; in mtdoops_erase_block()
87 ret = mtd_erase(mtd, &erase); in mtdoops_erase_block()
125 struct mtd_info *mtd = cxt->mtd; in mtdoops_workfunc_erase() local
129 if (!mtd) in mtdoops_workfunc_erase()
132 mod = (cxt->nextpage * record_size) % mtd->erasesize; in mtdoops_workfunc_erase()
134 cxt->nextpage = cxt->nextpage + ((mtd->erasesize - mod) / record_size); in mtdoops_workfunc_erase()
139 while ((ret = mtd_block_isbad(mtd, cxt->nextpage * record_size)) > 0) { in mtdoops_workfunc_erase()
144 cxt->nextpage = cxt->nextpage + (mtd->erasesize / record_size); in mtdoops_workfunc_erase()
147 if (i == cxt->oops_pages / (mtd->erasesize / record_size)) { in mtdoops_workfunc_erase()
168 ret = mtd_block_markbad(mtd, cxt->nextpage * record_size); in mtdoops_workfunc_erase()
179 struct mtd_info *mtd = cxt->mtd; in mtdoops_write() local
193 ret = mtd_panic_write(mtd, cxt->nextpage * record_size, in mtdoops_write()
200 ret = mtd_write(mtd, cxt->nextpage * record_size, in mtdoops_write()
224 struct mtd_info *mtd = cxt->mtd; in find_next_position() local
230 if (mtd_block_isbad(mtd, page * record_size)) in find_next_position()
234 ret = mtd_read(mtd, page * record_size, MTDOOPS_HEADER_SIZE, in find_next_position()
303 static void mtdoops_notify_add(struct mtd_info *mtd) in mtdoops_notify_add() argument
306 u64 mtdoops_pages = div_u64(mtd->size, record_size); in mtdoops_notify_add()
309 if (!strcmp(mtd->name, mtddev)) in mtdoops_notify_add()
310 cxt->mtd_index = mtd->index; in mtdoops_notify_add()
312 if (mtd->index != cxt->mtd_index || cxt->mtd_index < 0) in mtdoops_notify_add()
315 if (mtd->size < mtd->erasesize * 2) { in mtdoops_notify_add()
317 mtd->index); in mtdoops_notify_add()
320 if (mtd->erasesize < record_size) { in mtdoops_notify_add()
322 mtd->index); in mtdoops_notify_add()
325 if (mtd->size > MTDOOPS_MAX_MTD_SIZE) { in mtdoops_notify_add()
327 mtd->index, MTDOOPS_MAX_MTD_SIZE / 1024 / 1024); in mtdoops_notify_add()
351 cxt->mtd = mtd; in mtdoops_notify_add()
352 cxt->oops_pages = (int)mtd->size / record_size; in mtdoops_notify_add()
354 printk(KERN_INFO "mtdoops: Attached to MTD device %d\n", mtd->index); in mtdoops_notify_add()
357 static void mtdoops_notify_remove(struct mtd_info *mtd) in mtdoops_notify_remove() argument
361 if (mtd->index != cxt->mtd_index || cxt->mtd_index < 0) in mtdoops_notify_remove()
367 cxt->mtd = NULL; in mtdoops_notify_remove()