]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
mtd: implement support for LED activity
authorChristian Marangi <ansuelsmth@gmail.com>
Tue, 1 Oct 2024 12:24:40 +0000 (14:24 +0200)
committerTom Rini <trini@konsulko.com>
Thu, 10 Oct 2024 22:02:20 +0000 (16:02 -0600)
Implement support for LED activity. If the feature is enabled,
make the defined ACTIVITY LED to signal mtd operations.

LED activity is implemented HERE and not in the subsystem side to limit
any performance degradation in case multiple call to MTD subsystem read/write
are done.

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
cmd/mtd.c

index 795aaa2b37da7b539fee07efacb20be867aa73f3..f178d7bea614b5cd0a53e2f0c9ff49305a6ab751 100644 (file)
--- a/cmd/mtd.c
+++ b/cmd/mtd.c
@@ -10,6 +10,7 @@
 
 #include <command.h>
 #include <console.h>
+#include <led.h>
 #if CONFIG_IS_ENABLED(CMD_MTD_OTP)
 #include <hexdump.h>
 #endif
@@ -558,6 +559,8 @@ static int do_mtd_io(struct cmd_tbl *cmdtp, int flag, int argc,
        while (mtd_block_isbad(mtd, off))
                off += mtd->erasesize;
 
+       led_activity_blink();
+
        /* Loop over the pages to do the actual read/write */
        while (remaining) {
                /* Skip the block if it is bad */
@@ -585,6 +588,8 @@ static int do_mtd_io(struct cmd_tbl *cmdtp, int flag, int argc,
                io_op.oobbuf += io_op.oobretlen;
        }
 
+       led_activity_off();
+
        if (!ret && dump)
                mtd_dump_device_buf(mtd, start_off, buf, len, woob);
 
@@ -652,6 +657,8 @@ static int do_mtd_erase(struct cmd_tbl *cmdtp, int flag, int argc,
        erase_op.addr = off;
        erase_op.len = mtd->erasesize;
 
+       led_activity_blink();
+
        while (len) {
                if (!scrub) {
                        ret = mtd_block_isbad(mtd, erase_op.addr);
@@ -680,6 +687,8 @@ static int do_mtd_erase(struct cmd_tbl *cmdtp, int flag, int argc,
                erase_op.addr += mtd->erasesize;
        }
 
+       led_activity_off();
+
        if (ret && ret != -EIO)
                ret = CMD_RET_FAILURE;
        else