When picking up boot/reboot after we've sent our result packet, use
the previously parsed command rather than redoing the strcmp.

Signed-off-by: Alex Kiernan <alex.kier...@gmail.com>
---

Changes in v2: None

 net/fastboot.c | 15 +++++++--------
 1 file changed, 7 insertions(+), 8 deletions(-)

diff --git a/net/fastboot.c b/net/fastboot.c
index edf78df..ad8c101 100644
--- a/net/fastboot.c
+++ b/net/fastboot.c
@@ -141,6 +141,7 @@ static void fastboot_send(struct fastboot_header fb_header, 
char *fastboot_data,
        uchar *packet;
        uchar *packet_base;
        int len = 0;
+       int cmd = -1;
        const char *error_msg = "An error occurred.";
        short tmp;
        struct fastboot_header fb_response_header = fb_header;
@@ -192,15 +193,13 @@ static void fastboot_send(struct fastboot_header 
fb_header, char *fastboot_data,
                        if (cmd_parameter)
                                cmd_parameter = strdup(cmd_parameter);
                } else {
-                       int i;
-
-                       i = fastboot_lookup_command(cmd_string);
-                       if (i >= 0) {
+                       cmd = fastboot_lookup_command(cmd_string);
+                       if (cmd >= 0) {
                                void (*fb_call)(char *cmd_parameter,
                                                char *fastboot_data,
                                                unsigned int fastboot_data_len,
                                                char *response);
-                               fb_call = fb_net_dispatch[i];
+                               fb_call = fb_net_dispatch[cmd];
                                if (fb_call) {
                                        fb_call(cmd_parameter, fastboot_data,
                                                fastboot_data_len, response);
@@ -244,10 +243,10 @@ static void fastboot_send(struct fastboot_header 
fb_header, char *fastboot_data,
 
        /* Continue boot process after sending response */
        if (!strncmp("OKAY", response, 4)) {
-               if (!strcmp("boot", cmd_string)) {
+               if (cmd == FB_CMD_BOOT) {
                        boot_downloaded_image();
-               } else if (!strncmp("reboot", cmd_string, 6)) {
-                       /* Matches reboot or reboot-bootloader */
+               } else if (cmd == FB_CMD_REBOOT ||
+                          cmd == FB_CMD_REBOOT_BOOTLOADER) {
                        do_reset(NULL, 0, 0, NULL);
                }
        }
-- 
2.7.4

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to