Skip to content

Commit 7f0379c

Browse files
7134956bbogush
authored andcommitted
Add progress for read bad blocks operation.
1 parent 5ed7b5c commit 7f0379c

File tree

5 files changed

+31
-0
lines changed

5 files changed

+31
-0
lines changed

firmware/programmer/nand_programmer.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,7 @@ 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);
391392
if ((ret = np_read_bad_block_info_from_page(prog, block, page,
392393
&is_bad)))
393394
{

qt/main_window.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,9 +464,25 @@ void MainWindow::slotProgReadBadBlocksCompleted(int status)
464464
{
465465
disconnect(prog, SIGNAL(readChipBadBlocksCompleted(int)), this,
466466
SLOT(slotProgReadBadBlocksCompleted(int)));
467+
disconnect(prog, SIGNAL(readChipBadBlocksProgress(unsigned int)), this,
468+
SLOT(slotProgReadBadBlocksProgress(unsigned int)));
467469

468470
if (!status)
469471
qInfo() << "Bad blocks have been successfully read";
472+
473+
setProgress(100);
474+
}
475+
476+
void MainWindow::slotProgReadBadBlocksProgress(unsigned int progress)
477+
{
478+
uint32_t progressPercent;
479+
QString chipName = ui->chipSelectComboBox->currentText();
480+
uint32_t pageNum =
481+
currentChipDb->extendedTotalSizeGetByName(chipName) /
482+
currentChipDb->extendedPageSizeGetByName(chipName);
483+
484+
progressPercent = progress * 100ULL / pageNum;
485+
setProgress(progressPercent);
470486
}
471487

472488
void MainWindow::slotProgReadBadBlocks()
@@ -475,6 +491,8 @@ void MainWindow::slotProgReadBadBlocks()
475491

476492
connect(prog, SIGNAL(readChipBadBlocksCompleted(int)), this,
477493
SLOT(slotProgReadBadBlocksCompleted(int)));
494+
connect(prog, SIGNAL(readChipBadBlocksProgress(unsigned int)), this,
495+
SLOT(slotProgReadBadBlocksProgress(unsigned int)));
478496

479497
prog->readChipBadBlocks();
480498
}

qt/main_window.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ private slots:
5959
void slotProgEraseCompleted(int status);
6060
void slotProgEraseProgress(unsigned int progress);
6161
void slotProgReadBadBlocksCompleted(int status);
62+
void slotProgReadBadBlocksProgress(unsigned int progress);
6263
void slotProgSelectCompleted(int status);
6364
void slotProgDetectChipConfCompleted(int status);
6465
void slotProgDetectChipReadChipIdCompleted(int status);

qt/programmer.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,15 +279,24 @@ void Programmer::readChipBadBlocksCb(int ret)
279279
QTimer::singleShot(0, &reader, &Reader::stop);
280280
QObject::disconnect(&reader, SIGNAL(result(int)), this,
281281
SLOT(readChipBadBlocksCb(int)));
282+
QObject::disconnect(&reader, SIGNAL(progress(unsigned int)), this,
283+
SLOT(readChipBadBlocksProgressCb(unsigned int)));
282284
emit readChipBadBlocksCompleted(ret);
283285
}
284286

287+
void Programmer::readChipBadBlocksProgressCb(unsigned int progress)
288+
{
289+
emit readChipBadBlocksProgress(progress);
290+
}
291+
285292
void Programmer::readChipBadBlocks()
286293
{
287294
Cmd cmd;
288295

289296
QObject::connect(&reader, SIGNAL(result(int)), this,
290297
SLOT(readChipBadBlocksCb(int)));
298+
QObject::connect(&reader, SIGNAL(progress(unsigned int)), this,
299+
SLOT(readChipBadBlocksProgressCb(unsigned int)));
291300

292301
cmd.code = CMD_NAND_READ_BB;
293302

qt/programmer.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ class Programmer : public QObject
9999
void readChipProgress(unsigned int ret);
100100
void eraseChipCompleted(int ret);
101101
void eraseChipProgress(unsigned int progress);
102+
void readChipBadBlocksProgress(unsigned int progress);
102103
void readChipBadBlocksCompleted(int ret);
103104
void confChipCompleted(int ret);
104105
void firmwareUpdateCompleted(int ret);
@@ -113,6 +114,7 @@ private slots:
113114
void eraseChipCb(int ret);
114115
void eraseProgressChipCb(unsigned int progress);
115116
void readChipBadBlocksCb(int ret);
117+
void readChipBadBlocksProgressCb(unsigned int progress);
116118
void confChipCb(int ret);
117119
void logCb(QtMsgType msgType, QString msg);
118120
void connectCb(int ret);

0 commit comments

Comments
 (0)