so we can use non startup console

Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <[email protected]>
---
 commands/loadxy.c | 25 +++++++++++++++++++++++--
 1 file changed, 23 insertions(+), 2 deletions(-)

diff --git a/commands/loadxy.c b/commands/loadxy.c
index b90d2fd..7cefba4 100644
--- a/commands/loadxy.c
+++ b/commands/loadxy.c
@@ -99,6 +99,13 @@ static int do_loady(int argc, char *argv[])
                return -ENODEV;
        }
 
+       rcode = console_open(cdev);
+       if (rcode) {
+               printf("%s: can not open console %s\n",
+                      argv[0], cname ? cname : "default");
+               return rcode;
+       }
+
        current_baudrate = console_change_speed(cdev, load_baudrate);
        printf("## Ready for binary (ymodem) download at %d bps...\n",
               load_baudrate ? load_baudrate : current_baudrate);
@@ -115,6 +122,8 @@ static int do_loady(int argc, char *argv[])
 
        console_change_speed(cdev, current_baudrate);
 
+       console_close(cdev);
+
        return rcode;
 }
 
@@ -167,6 +176,13 @@ static int do_loadx(int argc, char *argv[])
                return -ENODEV;
        }
 
+       rcode = console_open(cdev);
+       if (rcode) {
+               printf("%s: can not open console %s\n",
+                      argv[0], cname ? cname : "default");
+               return rcode;
+       }
+
        /* Load Defaults */
        if (!output_file)
                output_file = DEF_FILE;
@@ -175,7 +191,8 @@ static int do_loadx(int argc, char *argv[])
        ofd = open(output_file, open_mode);
        if (ofd < 0) {
                perror(argv[0]);
-               return 3;
+               rcode = 3;
+               goto err;
        }
        /* Seek to the right offset */
        if (offset) {
@@ -184,7 +201,8 @@ static int do_loadx(int argc, char *argv[])
                        close(ofd);
                        ofd = 0;
                        perror(argv[0]);
-                       return 4;
+                       rcode = 4;
+                       goto err;
                }
        }
 
@@ -199,6 +217,9 @@ static int do_loadx(int argc, char *argv[])
        }
        console_change_speed(cdev, current_baudrate);
 
+err:
+       console_close(cdev);
+
        return rcode;
 }
 
-- 
1.8.4.rc3


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to