@@ -370,7 +370,7 @@ static int np_read_bad_block_info_from_page(np_prog_t *prog, uint32_t block,
370370 return 0 ;
371371}
372372
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 )
374374{
375375 int ret ;
376376 bool is_bad ;
@@ -388,7 +388,10 @@ static int _np_cmd_read_bad_blocks(np_prog_t *prog)
388388 for (block = 0 ; block < block_num ; block ++ )
389389 {
390390 page = block * page_num ;
391- np_send_progress (page );
391+
392+ if (send_progress )
393+ np_send_progress (page );
394+
392395 if ((ret = np_read_bad_block_info_from_page (prog , block , page ,
393396 & is_bad )))
394397 {
@@ -476,8 +479,11 @@ static int _np_cmd_nand_erase(np_prog_t *prog)
476479 total_size = prog -> chip_info .total_size ;
477480 }
478481
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+ {
480485 return ret ;
486+ }
481487
482488 if (addr % block_size )
483489 {
@@ -630,7 +636,7 @@ static int np_cmd_nand_write_start(np_prog_t *prog)
630636
631637 prog -> skip_bb = write_start_cmd -> flags .skip_bb ;
632638 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 )))
634640 {
635641 return ret ;
636642 }
@@ -934,8 +940,11 @@ static int _np_cmd_nand_read(np_prog_t *prog)
934940 return NP_ERR_LEN_NOT_ALIGN ;
935941 }
936942
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+ {
938946 return ret ;
947+ }
939948
940949 page .page = addr / page_size ;
941950 page .offset = 0 ;
@@ -1088,7 +1097,7 @@ int np_cmd_read_bad_blocks(np_prog_t *prog)
10881097
10891098 led_rd_set (true);
10901099 nand_bad_block_table_init ();
1091- ret = _np_cmd_read_bad_blocks (prog );
1100+ ret = _np_cmd_read_bad_blocks (prog , true );
10921101 led_rd_set (false);
10931102
10941103 if (ret || (ret = np_send_bad_blocks (prog )))
0 commit comments