summaryrefslogtreecommitdiff
path: root/util/ectool.c
diff options
context:
space:
mode:
Diffstat (limited to 'util/ectool.c')
-rw-r--r--util/ectool.c30
1 files changed, 19 insertions, 11 deletions
diff --git a/util/ectool.c b/util/ectool.c
index dfdc972622..2d23e2c59a 100644
--- a/util/ectool.c
+++ b/util/ectool.c
@@ -7783,7 +7783,7 @@ err:
}
static int wait_event(long event_type,
- struct ec_response_get_next_event_v1 *buffer,
+ struct ec_response_get_next_event *buffer,
size_t buffer_size, long timeout)
{
int rv;
@@ -7797,13 +7797,13 @@ static int wait_event(long event_type,
return -EIO;
}
- return rv;
+ return 0;
}
int cmd_wait_event(int argc, char *argv[])
{
int rv, i;
- struct ec_response_get_next_event_v1 buffer;
+ struct ec_response_get_next_event buffer;
long timeout = 5000;
long event_type;
char *e;
@@ -7868,7 +7868,7 @@ static int cmd_cec_write(int argc, char *argv[])
long val;
int rv, i, msg_len;
struct ec_params_cec_write p;
- struct ec_response_get_next_event_v1 buffer;
+ struct ec_response_get_next_event buffer;
if (argc < 3 || argc > 18) {
fprintf(stderr, "Invalid number of params\n");
@@ -7895,7 +7895,7 @@ static int cmd_cec_write(int argc, char *argv[])
if (rv < 0)
return rv;
- rv = wait_event(EC_MKBP_EVENT_CEC_EVENT, &buffer, sizeof(buffer), 1000);
+ rv = wait_event(EC_MKBP_EVENT_CEC, &buffer, sizeof(buffer), 1000);
if (rv < 0)
return rv;
@@ -7914,9 +7914,10 @@ static int cmd_cec_write(int argc, char *argv[])
static int cmd_cec_read(int argc, char *argv[])
{
- int i, rv;
+ int msg_len, i, rv;
char *e;
- struct ec_response_get_next_event_v1 buffer;
+ struct ec_response_cec_read r;
+ struct ec_response_get_next_event buffer;
long timeout = 5000;
if (!ec_pollevent) {
@@ -7932,14 +7933,21 @@ static int cmd_cec_read(int argc, char *argv[])
}
}
- rv = wait_event(EC_MKBP_EVENT_CEC_MESSAGE, &buffer,
- sizeof(buffer), timeout);
+ rv = wait_event(EC_MKBP_EVENT_CEC, &buffer, sizeof(buffer), timeout);
if (rv < 0)
return rv;
+ printf("Got CEC events 0x%08x\n", buffer.data.cec_events);
+
+ rv = ec_command(EC_CMD_CEC_READ_MSG, 0, NULL, 0, &r, sizeof(r));
+ if (rv < 0)
+ return rv;
+
+ msg_len = rv;
+
printf("CEC data: ");
- for (i = 0; i < rv - 1; i++)
- printf("0x%02x ", buffer.data.cec_message[i]);
+ for (i = 0; i < msg_len; i++)
+ printf("0x%02x ", r.msg[i]);
printf("\n");
return 0;