Lines Matching refs:pos
97 struct nand_pos pos; member
152 int (*erase)(struct nand_device *nand, const struct nand_pos *pos);
153 int (*markbad)(struct nand_device *nand, const struct nand_pos *pos);
154 bool (*isbad)(struct nand_device *nand, const struct nand_pos *pos);
428 struct nand_pos *pos) in nanddev_offs_to_pos() argument
434 pos->page = do_div(tmp, nand->memorg.pages_per_eraseblock); in nanddev_offs_to_pos()
435 pos->eraseblock = do_div(tmp, nand->memorg.eraseblocks_per_lun); in nanddev_offs_to_pos()
436 pos->plane = pos->eraseblock % nand->memorg.planes_per_lun; in nanddev_offs_to_pos()
437 pos->lun = do_div(tmp, nand->memorg.luns_per_target); in nanddev_offs_to_pos()
438 pos->target = tmp; in nanddev_offs_to_pos()
482 const struct nand_pos *pos) in nanddev_pos_to_offs() argument
486 npages = pos->page + in nanddev_pos_to_offs()
487 ((pos->eraseblock + in nanddev_pos_to_offs()
488 (pos->lun + in nanddev_pos_to_offs()
489 (pos->target * nand->memorg.luns_per_target)) * in nanddev_pos_to_offs()
507 const struct nand_pos *pos) in nanddev_pos_to_row() argument
509 return (pos->lun << nand->rowconv.lun_addr_shift) | in nanddev_pos_to_row()
510 (pos->eraseblock << nand->rowconv.eraseblock_addr_shift) | in nanddev_pos_to_row()
511 pos->page; in nanddev_pos_to_row()
523 struct nand_pos *pos) in nanddev_pos_next_target() argument
525 pos->page = 0; in nanddev_pos_next_target()
526 pos->plane = 0; in nanddev_pos_next_target()
527 pos->eraseblock = 0; in nanddev_pos_next_target()
528 pos->lun = 0; in nanddev_pos_next_target()
529 pos->target++; in nanddev_pos_next_target()
541 struct nand_pos *pos) in nanddev_pos_next_lun() argument
543 if (pos->lun >= nand->memorg.luns_per_target - 1) in nanddev_pos_next_lun()
544 return nanddev_pos_next_target(nand, pos); in nanddev_pos_next_lun()
546 pos->lun++; in nanddev_pos_next_lun()
547 pos->page = 0; in nanddev_pos_next_lun()
548 pos->plane = 0; in nanddev_pos_next_lun()
549 pos->eraseblock = 0; in nanddev_pos_next_lun()
561 struct nand_pos *pos) in nanddev_pos_next_eraseblock() argument
563 if (pos->eraseblock >= nand->memorg.eraseblocks_per_lun - 1) in nanddev_pos_next_eraseblock()
564 return nanddev_pos_next_lun(nand, pos); in nanddev_pos_next_eraseblock()
566 pos->eraseblock++; in nanddev_pos_next_eraseblock()
567 pos->page = 0; in nanddev_pos_next_eraseblock()
568 pos->plane = pos->eraseblock % nand->memorg.planes_per_lun; in nanddev_pos_next_eraseblock()
580 struct nand_pos *pos) in nanddev_pos_next_page() argument
582 if (pos->page >= nand->memorg.pages_per_eraseblock - 1) in nanddev_pos_next_page()
583 return nanddev_pos_next_eraseblock(nand, pos); in nanddev_pos_next_page()
585 pos->page++; in nanddev_pos_next_page()
605 iter->req.dataoffs = nanddev_offs_to_pos(nand, offs, &iter->req.pos); in nanddev_io_iter_init()
630 nanddev_pos_next_page(nand, &iter->req.pos); in nanddev_io_iter_next_page()
678 bool nanddev_isbad(struct nand_device *nand, const struct nand_pos *pos);
679 bool nanddev_isreserved(struct nand_device *nand, const struct nand_pos *pos);
680 int nanddev_erase(struct nand_device *nand, const struct nand_pos *pos);
681 int nanddev_markbad(struct nand_device *nand, const struct nand_pos *pos);
713 const struct nand_pos *pos) in nanddev_bbt_pos_to_entry() argument
715 return pos->eraseblock + in nanddev_bbt_pos_to_entry()
716 ((pos->lun + (pos->target * nand->memorg.luns_per_target)) * in nanddev_bbt_pos_to_entry()