@@ -370,7 +370,7 @@ static int np_read_bad_block_info_from_page(np_prog_t *prog, uint32_t block,
370
370
return 0 ;
371
371
}
372
372
373
- static int _np_cmd_read_bad_blocks (np_prog_t * prog )
373
+ static int _np_cmd_read_bad_blocks (np_prog_t * prog , bool send_progress )
374
374
{
375
375
int ret ;
376
376
bool is_bad ;
@@ -388,7 +388,10 @@ static int _np_cmd_read_bad_blocks(np_prog_t *prog)
388
388
for (block = 0 ; block < block_num ; block ++ )
389
389
{
390
390
page = block * page_num ;
391
- np_send_progress (page );
391
+
392
+ if (send_progress )
393
+ np_send_progress (page );
394
+
392
395
if ((ret = np_read_bad_block_info_from_page (prog , block , page ,
393
396
& is_bad )))
394
397
{
@@ -476,8 +479,11 @@ static int _np_cmd_nand_erase(np_prog_t *prog)
476
479
total_size = prog -> chip_info .total_size ;
477
480
}
478
481
479
- if (skip_bb && !prog -> bb_is_read && (ret = _np_cmd_read_bad_blocks (prog )))
482
+ if (skip_bb && !prog -> bb_is_read && (ret = _np_cmd_read_bad_blocks (prog ,
483
+ false)))
484
+ {
480
485
return ret ;
486
+ }
481
487
482
488
if (addr % block_size )
483
489
{
@@ -630,7 +636,7 @@ static int np_cmd_nand_write_start(np_prog_t *prog)
630
636
631
637
prog -> skip_bb = write_start_cmd -> flags .skip_bb ;
632
638
if (prog -> skip_bb && !prog -> bb_is_read &&
633
- (ret = _np_cmd_read_bad_blocks (prog )))
639
+ (ret = _np_cmd_read_bad_blocks (prog , false )))
634
640
{
635
641
return ret ;
636
642
}
@@ -934,8 +940,11 @@ static int _np_cmd_nand_read(np_prog_t *prog)
934
940
return NP_ERR_LEN_NOT_ALIGN ;
935
941
}
936
942
937
- if (skip_bb && !prog -> bb_is_read && (ret = _np_cmd_read_bad_blocks (prog )))
943
+ if (skip_bb && !prog -> bb_is_read && (ret = _np_cmd_read_bad_blocks (prog ,
944
+ false)))
945
+ {
938
946
return ret ;
947
+ }
939
948
940
949
page .page = addr / page_size ;
941
950
page .offset = 0 ;
@@ -1088,7 +1097,7 @@ int np_cmd_read_bad_blocks(np_prog_t *prog)
1088
1097
1089
1098
led_rd_set (true);
1090
1099
nand_bad_block_table_init ();
1091
- ret = _np_cmd_read_bad_blocks (prog );
1100
+ ret = _np_cmd_read_bad_blocks (prog , true );
1092
1101
led_rd_set (false);
1093
1102
1094
1103
if (ret || (ret = np_send_bad_blocks (prog )))
0 commit comments