Lines Matching refs:mtd
46 struct mtd_info *mtd; member
189 int (*_erase) (struct mtd_info *mtd, struct erase_info *instr);
190 int (*_point) (struct mtd_info *mtd, loff_t from, size_t len,
192 int (*_unpoint) (struct mtd_info *mtd, loff_t from, size_t len);
193 unsigned long (*_get_unmapped_area) (struct mtd_info *mtd,
197 int (*_read) (struct mtd_info *mtd, loff_t from, size_t len,
199 int (*_write) (struct mtd_info *mtd, loff_t to, size_t len,
201 int (*_panic_write) (struct mtd_info *mtd, loff_t to, size_t len,
203 int (*_read_oob) (struct mtd_info *mtd, loff_t from,
205 int (*_write_oob) (struct mtd_info *mtd, loff_t to,
207 int (*_get_fact_prot_info) (struct mtd_info *mtd, size_t len,
209 int (*_read_fact_prot_reg) (struct mtd_info *mtd, loff_t from,
211 int (*_get_user_prot_info) (struct mtd_info *mtd, size_t len,
213 int (*_read_user_prot_reg) (struct mtd_info *mtd, loff_t from,
215 int (*_write_user_prot_reg) (struct mtd_info *mtd, loff_t to,
217 int (*_lock_user_prot_reg) (struct mtd_info *mtd, loff_t from,
219 int (*_writev) (struct mtd_info *mtd, const struct kvec *vecs,
221 void (*_sync) (struct mtd_info *mtd);
222 int (*_lock) (struct mtd_info *mtd, loff_t ofs, uint64_t len);
223 int (*_unlock) (struct mtd_info *mtd, loff_t ofs, uint64_t len);
224 int (*_is_locked) (struct mtd_info *mtd, loff_t ofs, uint64_t len);
225 int (*_block_isreserved) (struct mtd_info *mtd, loff_t ofs);
226 int (*_block_isbad) (struct mtd_info *mtd, loff_t ofs);
227 int (*_block_markbad) (struct mtd_info *mtd, loff_t ofs);
228 int (*_suspend) (struct mtd_info *mtd);
229 void (*_resume) (struct mtd_info *mtd);
230 void (*_reboot) (struct mtd_info *mtd);
235 int (*_get_device) (struct mtd_info *mtd);
236 void (*_put_device) (struct mtd_info *mtd);
257 int mtd_erase(struct mtd_info *mtd, struct erase_info *instr);
258 int mtd_point(struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen,
260 int mtd_unpoint(struct mtd_info *mtd, loff_t from, size_t len);
261 unsigned long mtd_get_unmapped_area(struct mtd_info *mtd, unsigned long len,
263 int mtd_read(struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen,
265 int mtd_write(struct mtd_info *mtd, loff_t to, size_t len, size_t *retlen,
267 int mtd_panic_write(struct mtd_info *mtd, loff_t to, size_t len, size_t *retlen,
270 int mtd_read_oob(struct mtd_info *mtd, loff_t from, struct mtd_oob_ops *ops);
272 static inline int mtd_write_oob(struct mtd_info *mtd, loff_t to, in mtd_write_oob() argument
276 if (!mtd->_write_oob) in mtd_write_oob()
278 if (!(mtd->flags & MTD_WRITEABLE)) in mtd_write_oob()
280 return mtd->_write_oob(mtd, to, ops); in mtd_write_oob()
283 int mtd_get_fact_prot_info(struct mtd_info *mtd, size_t len, size_t *retlen,
285 int mtd_read_fact_prot_reg(struct mtd_info *mtd, loff_t from, size_t len,
287 int mtd_get_user_prot_info(struct mtd_info *mtd, size_t len, size_t *retlen,
289 int mtd_read_user_prot_reg(struct mtd_info *mtd, loff_t from, size_t len,
291 int mtd_write_user_prot_reg(struct mtd_info *mtd, loff_t to, size_t len,
293 int mtd_lock_user_prot_reg(struct mtd_info *mtd, loff_t from, size_t len);
295 int mtd_writev(struct mtd_info *mtd, const struct kvec *vecs,
298 static inline void mtd_sync(struct mtd_info *mtd) in mtd_sync() argument
300 if (mtd->_sync) in mtd_sync()
301 mtd->_sync(mtd); in mtd_sync()
304 int mtd_lock(struct mtd_info *mtd, loff_t ofs, uint64_t len);
305 int mtd_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len);
306 int mtd_is_locked(struct mtd_info *mtd, loff_t ofs, uint64_t len);
307 int mtd_block_isreserved(struct mtd_info *mtd, loff_t ofs);
308 int mtd_block_isbad(struct mtd_info *mtd, loff_t ofs);
309 int mtd_block_markbad(struct mtd_info *mtd, loff_t ofs);
311 static inline int mtd_suspend(struct mtd_info *mtd) in mtd_suspend() argument
313 return mtd->_suspend ? mtd->_suspend(mtd) : 0; in mtd_suspend()
316 static inline void mtd_resume(struct mtd_info *mtd) in mtd_resume() argument
318 if (mtd->_resume) in mtd_resume()
319 mtd->_resume(mtd); in mtd_resume()
322 static inline uint32_t mtd_div_by_eb(uint64_t sz, struct mtd_info *mtd) in mtd_div_by_eb() argument
324 if (mtd->erasesize_shift) in mtd_div_by_eb()
325 return sz >> mtd->erasesize_shift; in mtd_div_by_eb()
326 do_div(sz, mtd->erasesize); in mtd_div_by_eb()
330 static inline uint32_t mtd_mod_by_eb(uint64_t sz, struct mtd_info *mtd) in mtd_mod_by_eb() argument
332 if (mtd->erasesize_shift) in mtd_mod_by_eb()
333 return sz & mtd->erasesize_mask; in mtd_mod_by_eb()
334 return do_div(sz, mtd->erasesize); in mtd_mod_by_eb()
337 static inline uint32_t mtd_div_by_ws(uint64_t sz, struct mtd_info *mtd) in mtd_div_by_ws() argument
339 if (mtd->writesize_shift) in mtd_div_by_ws()
340 return sz >> mtd->writesize_shift; in mtd_div_by_ws()
341 do_div(sz, mtd->writesize); in mtd_div_by_ws()
345 static inline uint32_t mtd_mod_by_ws(uint64_t sz, struct mtd_info *mtd) in mtd_mod_by_ws() argument
347 if (mtd->writesize_shift) in mtd_mod_by_ws()
348 return sz & mtd->writesize_mask; in mtd_mod_by_ws()
349 return do_div(sz, mtd->writesize); in mtd_mod_by_ws()
352 static inline int mtd_has_oob(const struct mtd_info *mtd) in mtd_has_oob() argument
354 return mtd->_read_oob && mtd->_write_oob; in mtd_has_oob()
357 static inline int mtd_type_is_nand(const struct mtd_info *mtd) in mtd_type_is_nand() argument
359 return mtd->type == MTD_NANDFLASH || mtd->type == MTD_MLCNANDFLASH; in mtd_type_is_nand()
362 static inline int mtd_can_have_bb(const struct mtd_info *mtd) in mtd_can_have_bb() argument
364 return !!mtd->_block_isbad; in mtd_can_have_bb()
372 extern int mtd_device_parse_register(struct mtd_info *mtd,
380 extern struct mtd_info *get_mtd_device(struct mtd_info *mtd, int num);
381 extern int __get_mtd_device(struct mtd_info *mtd);
382 extern void __put_mtd_device(struct mtd_info *mtd);
384 extern void put_mtd_device(struct mtd_info *mtd);
388 void (*add)(struct mtd_info *mtd);
389 void (*remove)(struct mtd_info *mtd);
396 void *mtd_kmalloc_up_to(const struct mtd_info *mtd, size_t *size);
412 unsigned mtd_mmap_capabilities(struct mtd_info *mtd);