summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--util/ectool.c70
1 files 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;
}