From ebfed795adc6395c662c877c7a31099b6f8f1fc6 Mon Sep 17 00:00:00 2001 From: Mohammed Habibulla Date: Tue, 7 Oct 2014 14:42:26 -0700 Subject: CHERRY-PICK: ectool: replace thermal_threshold_version with ec_cmd_version_supported BUG=none TEST='ectool thermalget' works as expected BRANCH=none Change-Id: I31cd96996c1027308557285c4aa27419185dd2cd Original-Change-Id: Ie225ef0aaeae913162e8cd6c56193dedd9f56f2f Signed-off-by: Mohammed Habibulla Reviewed-on: https://chromium-review.googlesource.com/221745 Reviewed-by: Randall Spangler Reviewed-on: https://chromium-review.googlesource.com/222872 --- util/ectool.c | 70 ++++++++++------------------------------------------------- 1 file changed, 12 insertions(+), 58 deletions(-) diff --git a/util/ectool.c b/util/ectool.c index 314cb5aa44..123825e6da 100644 --- a/util/ectool.c +++ b/util/ectool.c @@ -1323,72 +1323,26 @@ int cmd_thermal_set_threshold_v1(int argc, char *argv[]) return rv; } -/** - * Detect the version of EC_CMD_THERMAL_GET_THRESHOLD that the EC supports. - * - * @return The version, or -1 if error. - */ -static int thermal_threshold_version(void) -{ - struct ec_params_thermal_get_threshold v0_p; - struct ec_response_thermal_get_threshold v0_r; - struct ec_params_thermal_get_threshold_v1 v1_p; - struct ec_thermal_config v1_r; - int rv; - - v1_p.sensor_num = 0; - rv = ec_command(EC_CMD_THERMAL_GET_THRESHOLD, 1, - &v1_p, sizeof(v1_p), &v1_r, sizeof(v1_r)); - - /* - * TODO(crosbug.com/p/23828): Version 1 of the threshold command will - * only return EC_RES_SUCCESS or EC_RES_INVALID_PARAM? - */ - if (rv > 0) - return 1; - - v0_p.sensor_type = 0; - v0_p.threshold_id = 0; - rv = ec_command(EC_CMD_THERMAL_GET_THRESHOLD, 0, - &v0_p, sizeof(v0_p), &v0_r, sizeof(v0_r)); - /* - * TODO(crosbug.com/p/23828): Version 0 of the threshold command will - * only return EC_RES_SUCCESS or EC_RES_ERROR? - */ - if (rv > 0) - return 0; - - /* - * Anything else is most likely EC_RES_INVALID_COMMAND, but we don't - * care because it's nothing we can use. - */ - return -1; -} - int cmd_thermal_get_threshold(int argc, char *argv[]) { - switch (thermal_threshold_version()) { - case 0: - return cmd_thermal_get_threshold_v0(argc, argv); - case 1: + if (ec_cmd_version_supported(EC_CMD_THERMAL_GET_THRESHOLD, 1)) return cmd_thermal_get_threshold_v1(argc, argv); - default: - printf("I got nuthin.\n"); - return -1; - } + else if (ec_cmd_version_supported(EC_CMD_THERMAL_GET_THRESHOLD, 0)) + return cmd_thermal_get_threshold_v0(argc, argv); + + printf("I got nuthin.\n"); + return -1; } int cmd_thermal_set_threshold(int argc, char *argv[]) { - switch (thermal_threshold_version()) { - case 0: - return cmd_thermal_set_threshold_v0(argc, argv); - case 1: + if (ec_cmd_version_supported(EC_CMD_THERMAL_SET_THRESHOLD, 1)) return cmd_thermal_set_threshold_v1(argc, argv); - default: - printf("I got nuthin.\n"); - return -1; - } + else if (ec_cmd_version_supported(EC_CMD_THERMAL_SET_THRESHOLD, 0)) + return cmd_thermal_set_threshold_v0(argc, argv); + + printf("I got nuthin.\n"); + return -1; } -- cgit v1.2.1