Lines Matching refs:block

84 static u32 bbt_nand_isbad_bypass(struct nand_device *nand, u32 block)  in bbt_nand_isbad_bypass()  argument
89 nanddev_bbt_set_block_status(nand, block, NAND_BBT_BLOCK_STATUS_UNKNOWN); in bbt_nand_isbad_bypass()
90 nanddev_offs_to_pos(nand, block * mtd->erasesize, &pos); in bbt_nand_isbad_bypass()
106 static int nanddev_read_bbt(struct nand_device *nand, u32 block, bool update) in nanddev_read_bbt() argument
123 if (block >= nblocks) in nanddev_read_bbt()
151 ret = mtd_read_oob(mtd, block * mtd->erasesize, &ops); in nanddev_read_bbt()
153 pr_err("read_bbt blk=%d fail=%d update=%d\n", block, ret, update); in nanddev_read_bbt()
170 pr_err("read_bbt check fail blk=%d ret=%d update=%d\n", block, ret, update); in nanddev_read_bbt()
178 bbt_dbg("read_bbt from blk=%d ver=%d update=%d\n", block, version, update); in nanddev_read_bbt()
198 for (block = 0; block < nblocks; block++) { in nanddev_read_bbt()
199 ret = nanddev_bbt_get_block_status(nand, block); in nanddev_read_bbt()
201 bbt_dbg("bad block[0x%x], ret=%d\n", block, ret); in nanddev_read_bbt()
218 static int nanddev_write_bbt(struct nand_device *nand, u32 block) in nanddev_write_bbt() argument
232 bbt_dbg("write_bbt to blk=%d ver=%d\n", block, nand->bbt.version); in nanddev_write_bbt()
236 if (block >= nblocks) in nanddev_write_bbt()
262 nanddev_offs_to_pos(nand, block * mtd->erasesize, &pos); in nanddev_write_bbt()
274 ret = mtd_write_oob(mtd, block * mtd->erasesize, &ops); in nanddev_write_bbt()
280 version = nanddev_read_bbt(nand, block, false); in nanddev_write_bbt()
283 block, version, bbt_info->version); in nanddev_write_bbt()
301 u32 start_block, block; in nanddev_bbt_format() local
308 for (block = 0; block < nblocks; block++) { in nanddev_bbt_format()
309 nanddev_offs_to_pos(nand, block * mtd->erasesize, &pos); in nanddev_bbt_format()
317 if (!bbt_nand_isbad_bypass(nand, block)) { in nanddev_bbt_format()
319 pr_err("bbt_format fail, test bad block %d fail\n", block); in nanddev_bbt_format()
323 nanddev_bbt_set_block_status(nand, block, in nanddev_bbt_format()
328 for (block = 0; block < NANDDEV_BBT_SCAN_MAXBLOCKS; block++) { in nanddev_bbt_format()
329 if (nanddev_bbt_get_block_status(nand, start_block + block) == in nanddev_bbt_format()
331 nanddev_bbt_set_block_status(nand, start_block + block, in nanddev_bbt_format()
341 u32 start_block, block; in nanddev_scan_bbt() local
346 for (block = 0; block < NANDDEV_BBT_SCAN_MAXBLOCKS; block++) in nanddev_scan_bbt()
347 nanddev_read_bbt(nand, start_block + block, true); in nanddev_scan_bbt()
373 for (block = 0; block < nblocks; block++) { in nanddev_scan_bbt()
374 ret = nanddev_bbt_get_block_status(nand, block); in nanddev_scan_bbt()
376 bbt_dbg("bad block[0x%x], ret=%d\n", block, ret); in nanddev_scan_bbt()
440 int start_block, block; in nanddev_bbt_update() local
445 for (block = 0; block < NANDDEV_BBT_SCAN_MAXBLOCKS; block++) { in nanddev_bbt_update()
446 status = nanddev_bbt_get_block_status(nand, start_block + block); in nanddev_bbt_update()
447 ret = nanddev_read_bbt(nand, start_block + block, false); in nanddev_bbt_update()
449 bbt_version[block] = BBT_VERSION_INVALID; in nanddev_bbt_update()
451 bbt_version[block] = BBT_VERSION_INVALID; in nanddev_bbt_update()
453 bbt_version[block] = ret; in nanddev_bbt_update()
455 bbt_version[block] = ret; in nanddev_bbt_update()
460 for (block = 0; block < NANDDEV_BBT_SCAN_MAXBLOCKS; block++) { in nanddev_bbt_update()
461 if (bbt_version[block] < min_version) { in nanddev_bbt_update()
462 min_version = bbt_version[block]; in nanddev_bbt_update()
463 block_des = start_block + block; in nanddev_bbt_update()
490 for (block = 0; block < NANDDEV_BBT_SCAN_MAXBLOCKS; block++) { in nanddev_bbt_update()
491 if (bbt_version[block] == BBT_VERSION_BLOCK_ABNORMAL) { in nanddev_bbt_update()
492 block_des = start_block + block; in nanddev_bbt_update()