mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-14 16:46:23 +00:00
CEC: Wait for send-event after cec writes in ectool
For factory testing purposes, make the cecwrite return-value depend on whether it got an ACK from the sink. Signed-off-by: Stefan Adolfsson <sadolfsson@chromium.org> BUG=b:76467407 BRANCH=none TEST=Using EC firmware with CEC support, ectool cecwrite with and without sink CQ-DEPEND=CL:1030215 Change-Id: I681243f74e4745796ac8d50e60dc0f7f9c087335 Reviewed-on: https://chromium-review.googlesource.com/1030216 Commit-Ready: Stefan Adolfsson <sadolfsson@chromium.org> Tested-by: Stefan Adolfsson <sadolfsson@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org> Reviewed-by: Daisuke Nojiri <dnojiri@chromium.org>
This commit is contained in:
committed by
chrome-bot
parent
8dab5788f3
commit
d81f36efce
@@ -7834,8 +7834,9 @@ int cmd_cec_write(int argc, char *argv[])
|
||||
{
|
||||
char *e;
|
||||
long val;
|
||||
int i, msg_len;
|
||||
int rv, i, msg_len;
|
||||
struct ec_params_cec_write p;
|
||||
struct ec_response_get_next_event buffer;
|
||||
|
||||
if (argc < 2 || argc > 17) {
|
||||
fprintf(stderr, "%s <MSG[0]> [MSG[1] ... MSG[15]]>\n", argv[0]);
|
||||
@@ -7857,7 +7858,31 @@ int cmd_cec_write(int argc, char *argv[])
|
||||
printf("0x%02x ", p.msg[i]);
|
||||
printf("\n");
|
||||
|
||||
return ec_command(EC_CMD_CEC_WRITE_MSG, 0, &p, msg_len, NULL, 0);
|
||||
rv = ec_command(EC_CMD_CEC_WRITE_MSG, 0, &p, msg_len, NULL, 0);
|
||||
if (rv < 0)
|
||||
return rv;
|
||||
|
||||
rv = ec_pollevent(1 << EC_MKBP_EVENT_CEC, &buffer,
|
||||
sizeof(buffer), 1000);
|
||||
if (rv == 0) {
|
||||
fprintf(stderr, "Timeout waiting CEC event\n");
|
||||
return -ETIMEDOUT;
|
||||
} else if (rv < 0) {
|
||||
perror("Error polling for MKBP event\n");
|
||||
return -EIO;
|
||||
}
|
||||
|
||||
if (buffer.data.cec_events & EC_MKBP_CEC_SEND_OK)
|
||||
return 0;
|
||||
|
||||
if (buffer.data.cec_events & EC_MKBP_CEC_SEND_FAILED) {
|
||||
fprintf(stderr, "Send failed\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
fprintf(stderr, "No send result received\n");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* NULL-terminated list of commands */
|
||||
|
||||
Reference in New Issue
Block a user