ec/google/chromeec: ignore LIMIT_POWER based on command code in response

Assume that LIMIT_POWER is not requested if the ec does not support it.
Do this by checking the command code in the response message instead
of return value.

BUG=b:146165519
BRANCH=None
TEST=Boot puff with EC which does not support LIMIT_POWER param.

Change-Id: Ib2f5f69a53f204acebfab3e36aab2960eeec1204
Signed-off-by: Rizwan Qureshi <rizwan.qureshi@intel.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/37947
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
This commit is contained in:
Rizwan Qureshi 2019-12-27 21:41:07 +05:30 committed by Edward O'Callaghan
parent a76cf28279
commit cf425783c8
1 changed files with 7 additions and 2 deletions

View File

@ -760,14 +760,19 @@ int google_chromeec_read_limit_power_request(int *limit_power)
int rv; int rv;
rv = google_chromeec_command(&cmd); rv = google_chromeec_command(&cmd);
if (rv == -EC_RES_INVALID_PARAM || rv == -EC_RES_INVALID_COMMAND) {
if (rv != 0 && (cmd.cmd_code == EC_RES_INVALID_COMMAND ||
cmd.cmd_code == EC_RES_INVALID_PARAM)) {
printk(BIOS_INFO, "PARAM_LIMIT_POWER not supported by EC.\n"); printk(BIOS_INFO, "PARAM_LIMIT_POWER not supported by EC.\n");
*limit_power = 0; *limit_power = 0;
return 0; return 0;
} else if (rv != 0) {
return -1;
} }
*limit_power = resp.get_param.value; *limit_power = resp.get_param.value;
return rv;
return 0;
} }
int google_chromeec_get_protocol_info( int google_chromeec_get_protocol_info(