Skip to content

Commit 106d673

Browse files
dnojiriTzung-Bi Shih
authored andcommitted
platform/chrome: cros_ec_proto: Upgrade get_next_event to v3
Upgrade EC_CMD_GET_NEXT_EVENT to version 3. The max supported version will be v3. So, we speak v3 even if the EC says it supports v4+. Signed-off-by: Daisuke Nojiri <[email protected]> Link: https://lore.kernel.org/r/[email protected] [tzungbi: uint32_t -> u32 per suggested by checkpatch.pl] Signed-off-by: Tzung-Bi Shih <[email protected]>
1 parent ba098ed commit 106d673

File tree

2 files changed

+19
-10
lines changed

2 files changed

+19
-10
lines changed

drivers/platform/chrome/cros_ec_proto.c

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -684,7 +684,7 @@ EXPORT_SYMBOL(cros_ec_cmd_xfer_status);
684684

685685
static int get_next_event_xfer(struct cros_ec_device *ec_dev,
686686
struct cros_ec_command *msg,
687-
struct ec_response_get_next_event_v1 *event,
687+
struct ec_response_get_next_event_v3 *event,
688688
int version, uint32_t size)
689689
{
690690
int ret;
@@ -707,24 +707,33 @@ static int get_next_event(struct cros_ec_device *ec_dev)
707707
{
708708
struct {
709709
struct cros_ec_command msg;
710-
struct ec_response_get_next_event_v1 event;
710+
struct ec_response_get_next_event_v3 event;
711711
} __packed buf;
712712
struct cros_ec_command *msg = &buf.msg;
713-
struct ec_response_get_next_event_v1 *event = &buf.event;
714-
const int cmd_version = ec_dev->mkbp_event_supported - 1;
713+
struct ec_response_get_next_event_v3 *event = &buf.event;
714+
int cmd_version = ec_dev->mkbp_event_supported - 1;
715+
u32 size;
715716

716717
memset(msg, 0, sizeof(*msg));
717718
if (ec_dev->suspended) {
718719
dev_dbg(ec_dev->dev, "Device suspended.\n");
719720
return -EHOSTDOWN;
720721
}
721722

722-
if (cmd_version == 0)
723-
return get_next_event_xfer(ec_dev, msg, event, 0,
724-
sizeof(struct ec_response_get_next_event));
723+
if (cmd_version == 0) {
724+
size = sizeof(struct ec_response_get_next_event);
725+
} else if (cmd_version < 3) {
726+
size = sizeof(struct ec_response_get_next_event_v1);
727+
} else {
728+
/*
729+
* The max version we support is v3. So, we speak v3 even if the
730+
* EC says it supports v4+.
731+
*/
732+
cmd_version = 3;
733+
size = sizeof(struct ec_response_get_next_event_v3);
734+
}
725735

726-
return get_next_event_xfer(ec_dev, msg, event, cmd_version,
727-
sizeof(struct ec_response_get_next_event_v1));
736+
return get_next_event_xfer(ec_dev, msg, event, cmd_version, size);
728737
}
729738

730739
static int get_keyboard_state_event(struct cros_ec_device *ec_dev)

include/linux/platform_data/cros_ec_proto.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ struct cros_ec_device {
185185
bool host_sleep_v1;
186186
struct blocking_notifier_head event_notifier;
187187

188-
struct ec_response_get_next_event_v1 event_data;
188+
struct ec_response_get_next_event_v3 event_data;
189189
int event_size;
190190
u32 host_event_wake_mask;
191191
u32 last_resume_result;

0 commit comments

Comments
 (0)