summaryrefslogtreecommitdiff
path: root/util/comm-dev.c
diff options
context:
space:
mode:
Diffstat (limited to 'util/comm-dev.c')
-rw-r--r--util/comm-dev.c59
1 files changed, 30 insertions, 29 deletions
diff --git a/util/comm-dev.c b/util/comm-dev.c
index e73538b323..f6467492f9 100644
--- a/util/comm-dev.c
+++ b/util/comm-dev.c
@@ -1,4 +1,4 @@
-/* Copyright 2013 The Chromium OS Authors. All rights reserved.
+/* Copyright 2013 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
@@ -27,7 +27,7 @@ static int fd = -1;
#define ARRAY_SIZE(t) (sizeof(t) / sizeof(t[0]))
#endif
-static const char * const meanings[] = {
+static const char *const meanings[] = {
"SUCCESS",
"INVALID_COMMAND",
"ERROR",
@@ -60,9 +60,8 @@ static const char *strresult(int i)
/* Old ioctl format, used by Chrome OS 3.18 and older */
-static int ec_command_dev(int command, int version,
- const void *outdata, int outsize,
- void *indata, int insize)
+static int ec_command_dev(int command, int version, const void *outdata,
+ int outsize, void *indata, int insize)
{
struct cros_ec_command s_cmd;
int r;
@@ -83,12 +82,15 @@ static int ec_command_dev(int command, int version,
if (errno == EAGAIN && s_cmd.result == EC_RES_IN_PROGRESS) {
s_cmd.command = EC_CMD_RESEND_RESPONSE;
r = ioctl(fd, CROS_EC_DEV_IOCXCMD, &s_cmd);
- fprintf(stderr,
- "ioctl %d, errno %d (%s), EC result %d (%s)\n",
- r, errno, strerror(errno), s_cmd.result,
- strresult(s_cmd.result));
+ if (r < 0) {
+ fprintf(stderr,
+ "ioctl %d, errno %d (%s), EC result %d (%s)\n",
+ r, errno, strerror(errno), s_cmd.result,
+ strresult(s_cmd.result));
+ }
}
- } else if (s_cmd.result != EC_RES_SUCCESS) {
+ }
+ if (r >= 0 && s_cmd.result != EC_RES_SUCCESS) {
fprintf(stderr, "EC result %d (%s)\n", s_cmd.result,
strresult(s_cmd.result));
return -EECRESULT - s_cmd.result;
@@ -117,16 +119,14 @@ static int ec_readmem_dev(int offset, int bytes, void *dest)
r_mem.offset = offset;
r_mem.size = bytes;
- return ec_command_dev(EC_CMD_READ_MEMMAP, 0,
- &r_mem, sizeof(r_mem),
+ return ec_command_dev(EC_CMD_READ_MEMMAP, 0, &r_mem, sizeof(r_mem),
dest, bytes);
}
/* New ioctl format, used by Chrome OS 4.4 and later as well as upstream 4.0+ */
-static int ec_command_dev_v2(int command, int version,
- const void *outdata, int outsize,
- void *indata, int insize)
+static int ec_command_dev_v2(int command, int version, const void *outdata,
+ int outsize, void *indata, int insize)
{
struct cros_ec_command_v2 *s_cmd;
int r;
@@ -153,18 +153,22 @@ static int ec_command_dev_v2(int command, int version,
strresult(s_cmd->result));
if (errno == EAGAIN && s_cmd->result == EC_RES_IN_PROGRESS) {
s_cmd->command = EC_CMD_RESEND_RESPONSE;
- r = ioctl(fd, CROS_EC_DEV_IOCXCMD_V2, &s_cmd);
- fprintf(stderr,
- "ioctl %d, errno %d (%s), EC result %d (%s)\n",
- r, errno, strerror(errno), s_cmd->result,
- strresult(s_cmd->result));
+ r = ioctl(fd, CROS_EC_DEV_IOCXCMD_V2, s_cmd);
+ if (r < 0) {
+ fprintf(stderr,
+ "ioctl %d, errno %d (%s), EC result %d (%s)\n",
+ r, errno, strerror(errno),
+ s_cmd->result,
+ strresult(s_cmd->result));
+ }
}
- } else {
+ }
+ if (r >= 0) {
memcpy(indata, s_cmd->data, MIN(r, insize));
if (s_cmd->result != EC_RES_SUCCESS) {
fprintf(stderr, "EC result %d (%s)\n", s_cmd->result,
strresult(s_cmd->result));
- r = -EECRESULT - s_cmd->result;
+ r = -EECRESULT - s_cmd->result;
}
}
free(s_cmd);
@@ -193,8 +197,7 @@ static int ec_readmem_dev_v2(int offset, int bytes, void *dest)
r_mem.offset = offset;
r_mem.size = bytes;
- return ec_command_dev_v2(EC_CMD_READ_MEMMAP, 0,
- &r_mem, sizeof(r_mem),
+ return ec_command_dev_v2(EC_CMD_READ_MEMMAP, 0, &r_mem, sizeof(r_mem),
dest, bytes);
}
@@ -204,11 +207,9 @@ static int ec_readmem_dev_v2(int offset, int bytes, void *dest)
*/
static int ec_dev_is_v2(void)
{
- struct ec_params_hello h_req = {
- .in_data = 0xa0b0c0d0
- };
+ struct ec_params_hello h_req = { .in_data = 0xa0b0c0d0 };
struct ec_response_hello h_resp;
- struct cros_ec_command s_cmd = { };
+ struct cros_ec_command s_cmd = {};
int r;
s_cmd.command = EC_CMD_HELLO;
@@ -256,7 +257,7 @@ int comm_init_dev(const char *device_name)
if (fd < 0)
return 1;
- r = read(fd, version, sizeof(version)-1);
+ r = read(fd, version, sizeof(version) - 1);
if (r <= 0) {
close(fd);
return 2;