diff options
author | Randall Spangler <rspangler@chromium.org> | 2012-07-16 12:39:05 -0700 |
---|---|---|
committer | Gerrit <chrome-bot@google.com> | 2012-07-16 15:32:31 -0700 |
commit | 0e6daeb6ab5c8d27163be2f7350f5de56276a6ad (patch) | |
tree | 5765d1fd6efb67ac5671b852d12069b5d8294d6d | |
parent | 7ee63359b86be2c5aa9567f51d28613f6e40213e (diff) | |
download | chrome-ec-0e6daeb6ab5c8d27163be2f7350f5de56276a6ad.tar.gz |
Fix return code from ectool
lbplay and burn_my_ec didn't have this problem.
BUG=chrome-os-partner:11402
TEST=ectool lightbar init && echo $?
Should echo 0
Change-Id: I7e9585555cc285ff02502fd4e6bb80e41c889e9d
Signed-off-by: Randall Spangler <rspangler@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/27527
Reviewed-by: Bill Richardson <wfrichar@chromium.org>
-rw-r--r-- | util/ectool.c | 81 |
1 files changed, 42 insertions, 39 deletions
diff --git a/util/ectool.c b/util/ectool.c index 47246085f2..993669ff05 100644 --- a/util/ectool.c +++ b/util/ectool.c @@ -380,7 +380,7 @@ int cmd_read_test(int argc, char *argv[]) int cmd_reboot_ec(int argc, char *argv[]) { struct ec_params_reboot_ec p; - int i; + int rv, i; if (argc < 2) { /* @@ -388,7 +388,8 @@ int cmd_reboot_ec(int argc, char *argv[]) * That reboots the AP as well, so unlikely we'll be around * to see a return code from this... */ - return ec_command(EC_CMD_REBOOT, 0, NULL, 0, NULL, 0); + rv = ec_command(EC_CMD_REBOOT, 0, NULL, 0, NULL, 0); + return (rv < 0 ? rv : 0); } /* Parse command */ @@ -420,7 +421,8 @@ int cmd_reboot_ec(int argc, char *argv[]) } } - return ec_command(EC_CMD_REBOOT_EC, 0, &p, sizeof(p), NULL, 0); + rv = ec_command(EC_CMD_REBOOT_EC, 0, &p, sizeof(p), NULL, 0); + return (rv < 0 ? rv : 0); } @@ -547,6 +549,7 @@ int cmd_flash_erase(int argc, char *argv[]) { struct ec_params_flash_erase p; char *e; + int rv; if (argc < 3) { fprintf(stderr, "Usage: %s <offset> <size>\n", argv[0]); @@ -564,8 +567,9 @@ int cmd_flash_erase(int argc, char *argv[]) } printf("Erasing %d bytes at offset %d...\n", p.size, p.offset); - if (ec_command(EC_CMD_FLASH_ERASE, 0, &p, sizeof(p), NULL, 0) < 0) - return -1; + rv = ec_command(EC_CMD_FLASH_ERASE, 0, &p, sizeof(p), NULL, 0); + if (rv < 0) + return rv; printf("done.\n"); return 0; @@ -936,12 +940,12 @@ static uint8_t lb_find_msg_by_name(const char *str) static int lb_do_cmd(enum lightbar_command cmd, struct ec_params_lightbar_cmd *ptr) { - int r; + int rv; ptr->in.cmd = cmd; - r = ec_command(EC_CMD_LIGHTBAR_CMD, 0, - ptr, lb_command_paramcount[cmd].insize, - ptr, lb_command_paramcount[cmd].outsize); - return r; + rv = ec_command(EC_CMD_LIGHTBAR_CMD, 0, + ptr, lb_command_paramcount[cmd].insize, + ptr, lb_command_paramcount[cmd].outsize); + return (rv < 0 ? rv : 0); } static void lb_show_msg_names(void) @@ -1050,20 +1054,20 @@ static const char * const image_names[] = {"unknown", "RO", "A", "B"}; static int cmd_vboot(int argc, char **argv) { - int r; + int rv; uint8_t v; char *e; struct ec_params_vboot_cmd param; if (argc == 1) { /* no args = get */ param.in.cmd = VBOOT_CMD_GET_FLAGS; - r = ec_command(EC_CMD_VBOOT_CMD, 0, - ¶m, - vb_command_paramcount[param.in.cmd].insize, - ¶m, - vb_command_paramcount[param.in.cmd].outsize); - if (r < 0) - return r; + rv = ec_command(EC_CMD_VBOOT_CMD, 0, + ¶m, + vb_command_paramcount[param.in.cmd].insize, + ¶m, + vb_command_paramcount[param.in.cmd].outsize); + if (rv < 0) + return rv; v = param.out.get_flags.val; printf("0x%02x image=%s\n", v, @@ -1081,12 +1085,12 @@ static int cmd_vboot(int argc, char **argv) param.in.cmd = VBOOT_CMD_SET_FLAGS; param.in.set_flags.val = v; - r = ec_command(EC_CMD_VBOOT_CMD, 0, - ¶m, - vb_command_paramcount[param.in.cmd].insize, - ¶m, - vb_command_paramcount[param.in.cmd].outsize); - return r; + rv = ec_command(EC_CMD_VBOOT_CMD, 0, + ¶m, + vb_command_paramcount[param.in.cmd].insize, + ¶m, + vb_command_paramcount[param.in.cmd].outsize); + return (rv < 0 ? rv : 0); } int cmd_usb_charge_set_mode(int argc, char *argv[]) @@ -1670,8 +1674,7 @@ int cmd_lcd_backlight(int argc, char *argv[]) int cmd_charge_force_idle(int argc, char *argv[]) { - int rv = ec_command(EC_CMD_CHARGE_FORCE_IDLE, - 0, NULL, 0, NULL, 0); + int rv = ec_command(EC_CMD_CHARGE_FORCE_IDLE, 0, NULL, 0, NULL, 0); if (rv < 0) { fprintf(stderr, "Is AC connected?\n"); return rv; @@ -1699,8 +1702,7 @@ int cmd_gpio_get(int argc, char *argv[]) } strcpy(p.name, argv[1]); - rv = ec_command(EC_CMD_GPIO_GET, 0, - &p, sizeof(p), &r, sizeof(r)); + rv = ec_command(EC_CMD_GPIO_GET, 0, &p, sizeof(p), &r, sizeof(r)); if (rv < 0) return rv; @@ -1732,8 +1734,7 @@ int cmd_gpio_set(int argc, char *argv[]) return -1; } - rv = ec_command(EC_CMD_GPIO_SET, 0, - &p, sizeof(p), NULL, 0); + rv = ec_command(EC_CMD_GPIO_SET, 0, &p, sizeof(p), NULL, 0); if (rv < 0) return rv; @@ -1867,13 +1868,15 @@ int cmd_ec_hash(int argc, char *argv[]) struct ec_params_vboot_hash p; struct ec_response_vboot_hash r; char *e; + int rv; if (argc < 2) { /* Get hash status */ p.cmd = EC_VBOOT_HASH_GET; - if (ec_command(EC_CMD_VBOOT_HASH, 0, - &p, sizeof(p), &r, sizeof(r)) < 0) - return -1; + rv = ec_command(EC_CMD_VBOOT_HASH, 0, + &p, sizeof(p), &r, sizeof(r)); + if (rv < 0) + return rv; return ec_hash_print(&r); } @@ -1881,10 +1884,9 @@ int cmd_ec_hash(int argc, char *argv[]) if (argc == 2 && !strcasecmp(argv[1], "abort")) { /* Abort hash calculation */ p.cmd = EC_VBOOT_HASH_ABORT; - if (ec_command(EC_CMD_VBOOT_HASH, 0, - &p, sizeof(p), &r, sizeof(r)) < 0) - return -1; - return 0; + rv = ec_command(EC_CMD_VBOOT_HASH, 0, + &p, sizeof(p), &r, sizeof(r)); + return (rv < 0 ? rv : 0); } /* The only other commands are start and recalc */ @@ -1928,8 +1930,9 @@ int cmd_ec_hash(int argc, char *argv[]) p.nonce_size = 0; printf("Hashing %d bytes at offset %d...\n", p.size, p.offset); - if (ec_command(EC_CMD_VBOOT_HASH, 0, &p, sizeof(p), &r, sizeof(r)) < 0) - return -1; + rv = ec_command(EC_CMD_VBOOT_HASH, 0, &p, sizeof(p), &r, sizeof(r)); + if (rv < 0) + return rv; /* Start command doesn't wait for hashing to finish */ if (p.cmd == EC_VBOOT_HASH_START) |