summaryrefslogtreecommitdiff
path: root/common/ec_ec_comm_client.c
diff options
context:
space:
mode:
authorTom Hughes <tomhughes@chromium.org>2022-09-21 14:10:01 -0700
committerTom Hughes <tomhughes@chromium.org>2022-09-22 12:49:33 -0700
commit2bcf863b492fe7ed8105c853814dba6ed32ba719 (patch)
treefcf6ce5810f9ff9e3c8cce434812dd75492269ed /common/ec_ec_comm_client.c
parente5fb0b9ba488614b5684e640530f00821ab7b943 (diff)
parent28712dae9d7ed1e694f7622cc083afa71090d4d5 (diff)
downloadchrome-ec-firmware-fpmcu-bloonchipper-release.tar.gz
Merge remote-tracking branch cros/main into firmware-fpmcu-bloonchipper-releasefirmware-fpmcu-bloonchipper-release
Generated by: ./util/update_release_branch.py --board bloonchipper --relevant_paths_file ./util/fingerprint-relevant-paths.txt firmware- fpmcu-bloonchipper-release Relevant changes: git log --oneline e5fb0b9ba4..28712dae9d -- board/hatch_fp board/bloonchipper common/fpsensor docs/fingerprint driver/fingerprint util/getversion.sh ded9307b79 util/getversion.sh: Fix version when not in a git repo 956055e692 board: change Google USB vendor info 71b2ef709d Update license boilerplate text in source code files 33e11afda0 Revert "fpsensor: Build fpsensor source file with C++" c8d0360723 fpsensor: Build fpsensor source file with C++ bc113abd53 fpsensor: Fix g++ compiler error 150a58a0dc fpsensor: Fix fp_set_sensor_mode return type b33b5ce85b fpsensor: Remove nested designators for C++ compatibility 2e864b2539 tree-wide: const-ify argv for console commands 56d8b360f9 test: Add test for get ikm failure when seed not set 3a3d6c3690 test: Add test for fpsensor trivial key failure 233e6bbd08 fpsensor_crypto: Abstract calls to hmac_SHA256 0a041b285b docs/fingerprint: Typo correction c03fab67e2 docs/fingerprint: Fix the path of fputils.py 0b5d4baf5a util/getversion.sh: Fix empty file list handling 6e128fe760 FPMCU dev board environment with Satlab 3eb29b6aa5 builtin: Move ssize_t to sys/types.h 345d62ebd1 docs/fingerprint: Update power numbers for latest dartmonkey release c25ffdb316 common: Conditionally support printf %l and %i modifiers 9a3c514b45 test: Add a test to check if the debugger is connected 54e603413f Move standard library tests to their own file 43fa6b4bf8 docs/fingerprint: Update power numbers for latest bloonchipper release 25536f9a84 driver/fingerprint/fpc/bep/fpc_sensor_spi.c: Format with clang-format 4face99efd driver/fingerprint/fpc/libfp/fpc_sensor_pal.h: Format with clang-format 738de2b575 trng: Rename rand to trng_rand 14b8270edd docs/fingerprint: Update dragonclaw power numbers 0b268f93d1 driver/fingerprint/fpc/libfp/fpc_private.c: Format with clang-format f80da163f2 driver/fingerprint/fpc/libfp/fpc_private.h: Format with clang-format 5e9c85c9b1 driver/fingerprint/fpc/libfp/fpc_sensor_pal.c: Format with clang-format c1f9dd3cf8 driver/fingerprint/fpc/libfp/fpc_bio_algorithm.h: Format with clang-format eb1e1bed8d driver/fingerprint/fpc/libfp/fpc1145_private.h: Format with clang-format 6e7b611821 driver/fingerprint/fpc/bep/fpc_bio_algorithm.h: Format with clang-format e0589cd5e2 driver/fingerprint/fpc/bep/fpc1035_private.h: Format with clang-format 7905e556a0 common/fpsensor/fpsensor_crypto.c: Format with clang-format 21289d170c driver/fingerprint/fpc/bep/fpc1025_private.h: Format with clang-format 98a20f937e common/fpsensor/fpsensor_state.c: Format with clang-format a2d255d8af common/fpsensor/fpsensor.c: Format with clang-format 73055eeb3f driver/fingerprint/fpc/bep/fpc_private.c: Format with clang-format 0f7b5cb509 common/fpsensor/fpsensor_private.h: Format with clang-format 1ceade6e65 driver/fingerprint/fpc/bep/fpc_private.h: Format with clang-format dc3e9008b8 board/hatch_fp/board.h: Format with clang-format dca9d74321 Revert "trng: Rename rand to trng_rand" a6b0b3554f trng: Rename rand to trng_rand 28d0b75b70 third_party/boringssl: Remove unused header BRANCH=None BUG=b:246424843 b:234181908 b:244781166 b:234181908 b:244387210 BUG=b:242720240 chromium:1098010 b:180945056 b:236025198 b:234181908 BUG=b:234181908 b:237344361 b:131913998 b:236386294 b:234143158 BUG=b:234781655 b:215613183 b:242720910 TEST=`make -j buildall` TEST=./test/run_device_tests.py --board bloonchipper Test "aes": PASSED Test "cec": PASSED Test "cortexm_fpu": PASSED Test "crc": PASSED Test "flash_physical": PASSED Test "flash_write_protect": PASSED Test "fpsensor_hw": PASSED Test "fpsensor_spi_ro": PASSED Test "fpsensor_spi_rw": PASSED Test "fpsensor_uart_ro": PASSED Test "fpsensor_uart_rw": PASSED Test "mpu_ro": PASSED Test "mpu_rw": PASSED Test "mutex": PASSED Test "pingpong": PASSED Test "printf": PASSED Test "queue": PASSED Test "rollback_region0": PASSED Test "rollback_region1": PASSED Test "rollback_entropy": PASSED Test "rtc": PASSED Test "sha256": PASSED Test "sha256_unrolled": PASSED Test "static_if": PASSED Test "stdlib": PASSED Test "system_is_locked_wp_on": PASSED Test "system_is_locked_wp_off": PASSED Test "timer_dos": PASSED Test "utils": PASSED Test "utils_str": PASSED Test "stm32f_rtc": PASSED Test "panic_data_bloonchipper_v2.0.4277": PASSED Test "panic_data_bloonchipper_v2.0.5938": PASSED Force-Relevant-Builds: all Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: I264ad0ffe7afcd507a1e483c6e934a9c4fea47c3
Diffstat (limited to 'common/ec_ec_comm_client.c')
-rw-r--r--common/ec_ec_comm_client.c71
1 files changed, 34 insertions, 37 deletions
diff --git a/common/ec_ec_comm_client.c b/common/ec_ec_comm_client.c
index b2f2387976..193d121343 100644
--- a/common/ec_ec_comm_client.c
+++ b/common/ec_ec_comm_client.c
@@ -1,4 +1,4 @@
-/* Copyright 2017 The Chromium OS Authors. All rights reserved.
+/* Copyright 2017 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -16,7 +16,7 @@
#include "util.h"
/* Console output macros */
-#define CPRINTF(format, args...) cprintf(CC_CHARGER, format, ## args)
+#define CPRINTF(format, args...) cprintf(CC_CHARGER, format, ##args)
/*
* TODO(b:65697962): The packed structures below do not play well if we force EC
@@ -97,9 +97,8 @@ struct {
* - EC_ERROR_INVAL when the received header is invalid.
* - EC_ERROR_UNKNOWN on other error.
*/
-static int write_command(uint16_t command,
- uint8_t *data, int req_len, int resp_len,
- int timeout_us)
+static int write_command(uint16_t command, uint8_t *data, int req_len,
+ int resp_len, int timeout_us)
{
/* Sequence number. */
static uint8_t cur_seq;
@@ -111,11 +110,10 @@ static int write_command(uint16_t command,
int tx_length =
sizeof(*request_header) + ((req_len > 0) ? (req_len + 1) : 0);
- struct ec_host_response4 *response_header =
- (void *)&data[tx_length];
+ struct ec_host_response4 *response_header = (void *)&data[tx_length];
/* RX length is TX length + response from server. */
- int rx_length = tx_length +
- sizeof(*request_header) + ((resp_len > 0) ? (resp_len + 1) : 0);
+ int rx_length = tx_length + sizeof(*request_header) +
+ ((resp_len > 0) ? (resp_len + 1) : 0);
/*
* Make sure there is a gap between each command, so that the server
@@ -124,7 +122,7 @@ static int write_command(uint16_t command,
* TODO(b:65697962): We can be much smarter than this, and record the
* last transaction time instead of just sleeping blindly.
*/
- usleep(10*MSEC);
+ usleep(10 * MSEC);
#ifdef DEBUG_EC_COMM_STATS
if ((comm_stats.total % 128) == 0) {
@@ -136,26 +134,27 @@ static int write_command(uint16_t command,
#endif
cur_seq = (cur_seq + 1) &
- (EC_PACKET4_0_SEQ_NUM_MASK >> EC_PACKET4_0_SEQ_NUM_SHIFT);
+ (EC_PACKET4_0_SEQ_NUM_MASK >> EC_PACKET4_0_SEQ_NUM_SHIFT);
memset(request_header, 0, sizeof(*request_header));
/* fields0: leave seq_dup and is_response as 0. */
request_header->fields0 =
EC_EC_HOSTCMD_VERSION | /* version */
- (cur_seq << EC_PACKET4_0_SEQ_NUM_SHIFT); /* seq_num */
+ (cur_seq << EC_PACKET4_0_SEQ_NUM_SHIFT); /* seq_num
+ */
/* fields1: leave command_version as 0. */
if (req_len > 0)
request_header->fields1 |= EC_PACKET4_1_DATA_CRC_PRESENT_MASK;
request_header->command = command;
request_header->data_len = req_len;
- request_header->header_crc =
- cros_crc8((uint8_t *)request_header, sizeof(*request_header)-1);
+ request_header->header_crc = cros_crc8((uint8_t *)request_header,
+ sizeof(*request_header) - 1);
if (req_len > 0)
data[sizeof(*request_header) + req_len] =
cros_crc8(&data[sizeof(*request_header)], req_len);
- ret = uart_alt_pad_write_read((void *)data, tx_length,
- (void *)data, rx_length, timeout_us);
+ ret = uart_alt_pad_write_read((void *)data, tx_length, (void *)data,
+ rx_length, timeout_us);
INCR_COMM_STATS(total);
@@ -187,20 +186,19 @@ static int write_command(uint16_t command,
hascrc = response_header->fields1 & EC_PACKET4_1_DATA_CRC_PRESENT_MASK;
response_seq = (response_header->fields0 & EC_PACKET4_0_SEQ_NUM_MASK) >>
- EC_PACKET4_0_SEQ_NUM_SHIFT;
+ EC_PACKET4_0_SEQ_NUM_SHIFT;
/*
* Validate received header.
* Note that we _require_ data crc to be present if there is data to be
* read back, else we would not know how many bytes to read exactly.
*/
- if ((response_header->fields0 & EC_PACKET4_0_STRUCT_VERSION_MASK)
- != EC_EC_HOSTCMD_VERSION ||
- !(response_header->fields0 &
- EC_PACKET4_0_IS_RESPONSE_MASK) ||
- response_seq != cur_seq ||
- (response_header->data_len > 0 && !hascrc) ||
- response_header->data_len != resp_len) {
+ if ((response_header->fields0 & EC_PACKET4_0_STRUCT_VERSION_MASK) !=
+ EC_EC_HOSTCMD_VERSION ||
+ !(response_header->fields0 & EC_PACKET4_0_IS_RESPONSE_MASK) ||
+ response_seq != cur_seq ||
+ (response_header->data_len > 0 && !hascrc) ||
+ response_header->data_len != resp_len) {
INCR_COMM_STATS(errinval);
return EC_ERROR_INVAL;
}
@@ -259,9 +257,9 @@ int ec_ec_client_base_get_dynamic_info(void)
data.req.param.index = 0;
- ret = write_command(EC_CMD_BATTERY_GET_DYNAMIC,
- (void *)&data, sizeof(data.req.param),
- sizeof(data.resp.info), 15 * MSEC);
+ ret = write_command(EC_CMD_BATTERY_GET_DYNAMIC, (void *)&data,
+ sizeof(data.req.param), sizeof(data.resp.info),
+ 15 * MSEC);
ret = handle_error(__func__, ret, data.resp.head.result);
if (ret != EC_RES_SUCCESS)
return ret;
@@ -277,7 +275,7 @@ int ec_ec_client_base_get_dynamic_info(void)
#endif
memcpy(&battery_dynamic[BATT_IDX_BASE], &data.resp.info,
- sizeof(battery_dynamic[BATT_IDX_BASE]));
+ sizeof(battery_dynamic[BATT_IDX_BASE]));
return EC_RES_SUCCESS;
}
@@ -301,9 +299,9 @@ int ec_ec_client_base_get_static_info(void)
data.req.param.index = 0;
- ret = write_command(EC_CMD_BATTERY_GET_STATIC,
- (void *)&data, sizeof(data.req.param),
- sizeof(data.resp.info), 15 * MSEC);
+ ret = write_command(EC_CMD_BATTERY_GET_STATIC, (void *)&data,
+ sizeof(data.req.param), sizeof(data.resp.info),
+ 15 * MSEC);
ret = handle_error(__func__, ret, data.resp.head.result);
if (ret != EC_RES_SUCCESS)
return ret;
@@ -330,8 +328,7 @@ int ec_ec_client_base_get_static_info(void)
return EC_RES_SUCCESS;
}
-int ec_ec_client_base_charge_control(int max_current,
- int otg_voltage,
+int ec_ec_client_base_charge_control(int max_current, int otg_voltage,
int allow_charging)
{
int ret;
@@ -350,8 +347,8 @@ int ec_ec_client_base_charge_control(int max_current,
data.req.ctrl.max_current = max_current;
data.req.ctrl.otg_voltage = otg_voltage;
- ret = write_command(EC_CMD_CHARGER_CONTROL,
- (void *)&data, sizeof(data.req.ctrl), 0, 30 * MSEC);
+ ret = write_command(EC_CMD_CHARGER_CONTROL, (void *)&data,
+ sizeof(data.req.ctrl), 0, 30 * MSEC);
return handle_error(__func__, ret, data.resp.head.result);
}
@@ -372,8 +369,8 @@ int ec_ec_client_hibernate(void)
data.req.param.cmd = EC_REBOOT_HIBERNATE;
data.req.param.flags = 0;
- ret = write_command(EC_CMD_REBOOT_EC,
- (void *)&data, sizeof(data.req.param), 0, 30 * MSEC);
+ ret = write_command(EC_CMD_REBOOT_EC, (void *)&data,
+ sizeof(data.req.param), 0, 30 * MSEC);
return handle_error(__func__, ret, data.resp.head.result);
}