Implement support for LED status activity. If the feature is enabled,
make the defined ACTIVITY LED to signal traffic.

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

diff --git a/net/tftp.c b/net/tftp.c
index 2e335413492..07dea321bb4 100644
--- a/net/tftp.c
+++ b/net/tftp.c
@@ -19,6 +19,7 @@
 #include <asm/global_data.h>
 #include <net/tftp.h>
 #include "bootp.h"
+#include <status_led.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -193,6 +194,10 @@ static void new_transfer(void)
 #ifdef CONFIG_CMD_TFTPPUT
        tftp_put_final_block_sent = 0;
 #endif
+#ifdef CONFIG_LED_STATUS_ACTIVITY_ENABLE
+       status_led_set(CONFIG_LED_STATUS_ACTIVITY,
+                      CONFIG_LED_STATUS_BLINKING);
+#endif
 }
 
 #ifdef CONFIG_CMD_TFTPPUT
@@ -228,6 +233,10 @@ static void show_block_marker(void)
 {
        ulong pos;
 
+#ifdef CONFIG_LED_STATUS_ACTIVITY_ENABLE
+       status_led_activity(CONFIG_LED_STATUS_ACTIVITY);
+#endif
+
 #ifdef CONFIG_TFTP_TSIZE
        if (tftp_tsize) {
                pos = tftp_cur_block * tftp_block_size +
@@ -290,6 +299,9 @@ static void tftp_complete(void)
        /* Print hash marks for the last packet received */
        while (tftp_tsize && tftp_tsize_num_hash < 49) {
                putc('#');
+#ifdef CONFIG_LED_STATUS_ACTIVITY_ENABLE
+               status_led_activity(CONFIG_LED_STATUS_ACTIVITY);
+#endif
                tftp_tsize_num_hash++;
        }
        puts("  ");
@@ -302,6 +314,10 @@ static void tftp_complete(void)
                        time_start * 1000, "/s");
        }
        puts("\ndone\n");
+#ifdef CONFIG_LED_STATUS_ACTIVITY_ENABLE
+       status_led_set(CONFIG_LED_STATUS_ACTIVITY,
+                      CONFIG_LED_STATUS_OFF);
+#endif
        if (!tftp_put_active)
                efi_set_bootdev("Net", "", tftp_filename,
                                map_sysmem(tftp_load_addr, 0),
-- 
2.43.0

Reply via email to