Implement support for LED status activity. If the feature is enabled,
make the defined ACTIVITY LED to signal mtd write or erase operations.

Signed-off-by: Christian Marangi <ansuels...@gmail.com>
---
 cmd/mtd.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/cmd/mtd.c b/cmd/mtd.c
index 9189f45cabd..a10805d05a5 100644
--- a/cmd/mtd.c
+++ b/cmd/mtd.c
@@ -11,6 +11,7 @@
 #include <command.h>
 #include <common.h>
 #include <console.h>
+#include <status_led.h>
 #if CONFIG_IS_ENABLED(CMD_MTD_OTP)
 #include <hexdump.h>
 #endif
@@ -559,6 +560,11 @@ static int do_mtd_io(struct cmd_tbl *cmdtp, int flag, int 
argc,
        while (mtd_block_isbad(mtd, off))
                off += mtd->erasesize;
 
+#ifdef CONFIG_LED_STATUS_ACTIVITY_ENABLE
+       if (!read)
+               status_led_activity_start(CONFIG_LED_STATUS_ACTIVITY);
+#endif
+
        /* Loop over the pages to do the actual read/write */
        while (remaining) {
                /* Skip the block if it is bad */
@@ -586,6 +592,11 @@ static int do_mtd_io(struct cmd_tbl *cmdtp, int flag, int 
argc,
                io_op.oobbuf += io_op.oobretlen;
        }
 
+#ifdef CONFIG_LED_STATUS_ACTIVITY_ENABLE
+       if (!read)
+               status_led_activity_stop(CONFIG_LED_STATUS_ACTIVITY);
+#endif
+
        if (!ret && dump)
                mtd_dump_device_buf(mtd, start_off, buf, len, woob);
 
@@ -653,6 +664,10 @@ static int do_mtd_erase(struct cmd_tbl *cmdtp, int flag, 
int argc,
        erase_op.addr = off;
        erase_op.len = mtd->erasesize;
 
+#ifdef CONFIG_LED_STATUS_ACTIVITY_ENABLE
+       status_led_activity_start(CONFIG_LED_STATUS_ACTIVITY);
+#endif
+
        while (len) {
                if (!scrub) {
                        ret = mtd_block_isbad(mtd, erase_op.addr);
@@ -681,6 +696,10 @@ static int do_mtd_erase(struct cmd_tbl *cmdtp, int flag, 
int argc,
                erase_op.addr += mtd->erasesize;
        }
 
+#ifdef CONFIG_LED_STATUS_ACTIVITY_ENABLE
+       status_led_activity_stop(CONFIG_LED_STATUS_ACTIVITY);
+#endif
+
        if (ret && ret != -EIO)
                ret = CMD_RET_FAILURE;
        else
-- 
2.43.0

Reply via email to