static int scan_for_bad_eraseblocks(void) { int i, bad = 0; bbt = kzalloc(ebcnt, GFP_KERNEL); if (!bbt) { #ifdef CONFIG_DEBUG_PRINTK printk(PRINT_PREF "error: cannot allocate memory\n"); #else ; #endif return -ENOMEM; } #ifdef CONFIG_DEBUG_PRINTK printk(PRINT_PREF "scanning for bad eraseblocks\n"); #else ; #endif for (i = 0; i < ebcnt; ++i) { bbt[i] = is_block_bad(i) ? 1 : 0; if (bbt[i]) bad += 1; cond_resched(); } #ifdef CONFIG_DEBUG_PRINTK printk(PRINT_PREF "scanned %d eraseblocks, %d are bad\n", i, bad); #else ; #endif return 0; }
static int scan_for_bad_eraseblocks(void) { int i, bad = 0; bbt = kzalloc(ebcnt, GFP_KERNEL); if (!bbt) { printk(PRINT_PREF "error: cannot allocate memory\n"); return -ENOMEM; } if (!mtd_can_have_bb(mtd)) goto out; printk(PRINT_PREF "scanning for bad eraseblocks\n"); for (i = 0; i < ebcnt; ++i) { bbt[i] = is_block_bad(i) ? 1 : 0; if (bbt[i]) bad += 1; cond_resched(); } printk(PRINT_PREF "scanned %d eraseblocks, %d are bad\n", i, bad); out: goodebcnt = ebcnt - bad; return 0; }
static int scan_for_bad_eraseblocks(void) { int i, bad = 0; bbt = kmalloc(ebcnt, GFP_KERNEL); if (!bbt) { printk(PRINT_PREF "error: cannot allocate memory\n"); return -ENOMEM; } memset(bbt, 0 , ebcnt); /* NOR flash does not implement block_isbad */ if (mtd->block_isbad == NULL) return 0; printk(PRINT_PREF "scanning for bad eraseblocks\n"); for (i = 0; i < ebcnt; ++i) { bbt[i] = is_block_bad(i) ? 1 : 0; if (bbt[i]) bad += 1; cond_resched(); } printk(PRINT_PREF "scanned %d eraseblocks, %d are bad\n", i, bad); return 0; }
int lge_get_mtd_factory_mode_blk(int target_blk) { int i = 0; int factory_mode_blk = 0; for (i = 0; i < ebcnt; i++) { bbt[i] = is_block_bad(i) ? 1 : 0; if(bbt[i]) continue; else { factory_mode_blk += 1; if(factory_mode_blk == target_blk) return i; } } return -1; }
static int scan_for_bad_eraseblocks(void) { int i, bad = 0; bbt = kmalloc(ebcnt, GFP_KERNEL); if (!bbt) return -ENOMEM; pr_info("scanning for bad eraseblocks\n"); for (i = 0; i < ebcnt; ++i) { bbt[i] = is_block_bad(i) ? 1 : 0; if (bbt[i]) bad += 1; cond_resched(); } pr_info("scanned %d eraseblocks, %d are bad\n", i, bad); return 0; }
int mtdtest_scan_for_bad_eraseblocks(struct mtd_info *mtd, unsigned char *bbt, unsigned int eb, int ebcnt) { int i, bad = 0; if (!mtd_can_have_bb(mtd)) return 0; pr_info("scanning for bad eraseblocks\n"); for (i = 0; i < ebcnt; ++i) { bbt[i] = is_block_bad(mtd, eb + i) ? 1 : 0; if (bbt[i]) bad += 1; cond_resched(); } pr_info("scanned %d eraseblocks, %d are bad\n", i, bad); return 0; }
static int scan_for_bad_eraseblocks(void) { int i, bad = 0; bbt = kmalloc(ebcnt, GFP_KERNEL); if (!bbt) { printk(KERN_INFO"%s: error: cannot allocate memory\n", __func__); return -ENOMEM; } memset(bbt, 0 , ebcnt); printk(KERN_INFO"%s: scanning for bad eraseblocks\n", __func__); for (i = 0; i < ebcnt; ++i) { bbt[i] = is_block_bad(i) ? 1 : 0; if (bbt[i]) bad += 1; cond_resched(); } printk(KERN_INFO"%s: scanned %d eraseblocks, %d are bad\n", __func__, i, bad); return 0; }