Lines Matching refs:boffset
195 static loff_t sm_mkoffset(struct sm_ftl *ftl, int zone, int block, int boffset) in sm_mkoffset() argument
197 WARN_ON(boffset & (SM_SECTOR_SIZE - 1)); in sm_mkoffset()
200 WARN_ON(boffset >= ftl->block_size); in sm_mkoffset()
205 return (zone * SM_MAX_ZONE_SIZE + block) * ftl->block_size + boffset; in sm_mkoffset()
210 int *zone, int *block, int *boffset) in sm_break_offset() argument
212 *boffset = do_div(offset, ftl->block_size); in sm_break_offset()
237 int zone, int block, int boffset, in sm_read_sector() argument
267 if (zone == 0 && block == ftl->cis_block && boffset == in sm_read_sector()
278 ret = mtd_read_oob(mtd, sm_mkoffset(ftl, zone, block, boffset), &ops); in sm_read_sector()
319 int zone, int block, int boffset, in sm_write_sector() argument
343 ret = mtd_write_oob(mtd, sm_mkoffset(ftl, zone, block, boffset), &ops); in sm_write_sector()
370 int boffset; in sm_write_block() local
380 for (boffset = 0; boffset < ftl->block_size; in sm_write_block()
381 boffset += SM_SECTOR_SIZE) { in sm_write_block()
385 if (test_bit(boffset / SM_SECTOR_SIZE, &invalid_bitmap)) { in sm_write_block()
389 boffset / SM_SECTOR_SIZE, lba, zone); in sm_write_block()
395 __nand_calculate_ecc(buf + boffset, in sm_write_block()
398 __nand_calculate_ecc(buf + boffset + SM_SMALL_PAGE, in sm_write_block()
401 if (!sm_write_sector(ftl, zone, block, boffset, in sm_write_block()
402 buf + boffset, &oob)) in sm_write_block()
431 int boffset; in sm_mark_block_bad() local
447 for (boffset = 0; boffset < ftl->block_size; boffset += SM_SECTOR_SIZE) in sm_mark_block_bad()
448 sm_write_sector(ftl, zone, block, boffset, NULL, &oob); in sm_mark_block_bad()
512 int boffset; in sm_check_block() local
522 for (boffset = 0; boffset < ftl->block_size; in sm_check_block()
523 boffset += SM_SECTOR_SIZE) { in sm_check_block()
526 if (sm_read_sector(ftl, zone, block, boffset, NULL, &oob)) in sm_check_block()
689 int block, boffset; in sm_find_cis() local
709 for (boffset = 0 ; boffset < ftl->block_size; in sm_find_cis()
710 boffset += SM_SECTOR_SIZE) { in sm_find_cis()
712 if (sm_read_sector(ftl, 0, block, boffset, NULL, &oob)) in sm_find_cis()
720 if (boffset == ftl->block_size) in sm_find_cis()
724 ftl->cis_boffset = boffset; in sm_find_cis()
737 boffset + ftl->cis_page_offset); in sm_find_cis()
909 static void sm_cache_put(struct sm_ftl *ftl, char *buffer, int boffset) in sm_cache_put() argument
911 memcpy(ftl->cache_data + boffset, buffer, SM_SECTOR_SIZE); in sm_cache_put()
912 clear_bit(boffset / SM_SECTOR_SIZE, &ftl->cache_data_invalid_bitmap); in sm_cache_put()
917 static int sm_cache_get(struct sm_ftl *ftl, char *buffer, int boffset) in sm_cache_get() argument
919 if (test_bit(boffset / SM_SECTOR_SIZE, in sm_cache_get()
923 memcpy(buffer, ftl->cache_data + boffset, SM_SECTOR_SIZE); in sm_cache_get()
1016 int zone_num, block, boffset; in sm_read() local
1018 sm_break_offset(ftl, sect_no << 9, &zone_num, &block, &boffset); in sm_read()
1031 if (!sm_cache_get(ftl, buf, boffset)) in sm_read()
1043 if (sm_read_sector(ftl, zone_num, block, boffset, buf, NULL)) { in sm_read()
1049 sm_cache_put(ftl, buf, boffset); in sm_read()
1061 int error = 0, zone_num, block, boffset; in sm_write() local
1064 sm_break_offset(ftl, sec_no << 9, &zone_num, &block, &boffset); in sm_write()
1087 sm_cache_put(ftl, buf, boffset); in sm_write()