Lines Matching refs:msg

26 			  struct cros_ec_command *msg)  in prepare_packet()  argument
34 BUG_ON(msg->outsize + sizeof(*request) > ec_dev->dout_size); in prepare_packet()
40 request->command = msg->command; in prepare_packet()
41 request->command_version = msg->version; in prepare_packet()
43 request->data_len = msg->outsize; in prepare_packet()
49 memcpy(out + sizeof(*request), msg->data, msg->outsize); in prepare_packet()
50 for (i = 0; i < msg->outsize; i++) in prepare_packet()
51 csum += msg->data[i]; in prepare_packet()
55 return sizeof(*request) + msg->outsize; in prepare_packet()
59 struct cros_ec_command *msg) in send_command() argument
64 ret = ec_dev->pkt_xfer(ec_dev, msg); in send_command()
66 ret = ec_dev->cmd_xfer(ec_dev, msg); in send_command()
68 if (msg->result == EC_RES_IN_PROGRESS) { in send_command()
94 msg->result = status_msg->result; in send_command()
111 struct cros_ec_command *msg) in cros_ec_prepare_tx() argument
118 return prepare_packet(ec_dev, msg); in cros_ec_prepare_tx()
120 BUG_ON(msg->outsize > EC_PROTO2_MAX_PARAM_SIZE); in cros_ec_prepare_tx()
122 out[0] = EC_CMD_VERSION0 + msg->version; in cros_ec_prepare_tx()
123 out[1] = msg->command; in cros_ec_prepare_tx()
124 out[2] = msg->outsize; in cros_ec_prepare_tx()
126 for (i = 0; i < msg->outsize; i++) in cros_ec_prepare_tx()
127 csum += out[EC_MSG_TX_HEADER_BYTES + i] = msg->data[i]; in cros_ec_prepare_tx()
128 out[EC_MSG_TX_HEADER_BYTES + msg->outsize] = csum; in cros_ec_prepare_tx()
130 return EC_MSG_TX_PROTO_BYTES + msg->outsize; in cros_ec_prepare_tx()
135 struct cros_ec_command *msg) in cros_ec_check_result() argument
137 switch (msg->result) { in cros_ec_check_result()
142 msg->command); in cros_ec_check_result()
146 msg->command, msg->result); in cros_ec_check_result()
154 struct cros_ec_command *msg) in cros_ec_host_command_proto_query() argument
167 memset(msg, 0, sizeof(*msg)); in cros_ec_host_command_proto_query()
168 msg->command = EC_CMD_PASSTHRU_OFFSET(devidx) | EC_CMD_GET_PROTOCOL_INFO; in cros_ec_host_command_proto_query()
169 msg->insize = sizeof(struct ec_response_get_protocol_info); in cros_ec_host_command_proto_query()
171 ret = send_command(ec_dev, msg); in cros_ec_host_command_proto_query()
180 if (devidx > 0 && msg->result == EC_RES_INVALID_COMMAND) in cros_ec_host_command_proto_query()
182 else if (msg->result != EC_RES_SUCCESS) in cros_ec_host_command_proto_query()
183 return msg->result; in cros_ec_host_command_proto_query()
190 struct cros_ec_command *msg; in cros_ec_host_command_proto_query_v2() local
196 msg = kmalloc(sizeof(*msg) + len, GFP_KERNEL); in cros_ec_host_command_proto_query_v2()
197 if (!msg) in cros_ec_host_command_proto_query_v2()
200 msg->version = 0; in cros_ec_host_command_proto_query_v2()
201 msg->command = EC_CMD_HELLO; in cros_ec_host_command_proto_query_v2()
202 hello_params = (struct ec_params_hello *)msg->data; in cros_ec_host_command_proto_query_v2()
203 msg->outsize = sizeof(*hello_params); in cros_ec_host_command_proto_query_v2()
204 hello_response = (struct ec_response_hello *)msg->data; in cros_ec_host_command_proto_query_v2()
205 msg->insize = sizeof(*hello_response); in cros_ec_host_command_proto_query_v2()
209 ret = send_command(ec_dev, msg); in cros_ec_host_command_proto_query_v2()
216 } else if (msg->result != EC_RES_SUCCESS) { in cros_ec_host_command_proto_query_v2()
219 msg->result); in cros_ec_host_command_proto_query_v2()
220 ret = msg->result; in cros_ec_host_command_proto_query_v2()
233 kfree(msg); in cros_ec_host_command_proto_query_v2()
338 struct cros_ec_command *msg) in cros_ec_cmd_xfer() argument
353 if (msg->insize > ec_dev->max_response) { in cros_ec_cmd_xfer()
355 msg->insize = ec_dev->max_response; in cros_ec_cmd_xfer()
358 if (msg->command < EC_CMD_PASSTHRU_OFFSET(1)) { in cros_ec_cmd_xfer()
359 if (msg->outsize > ec_dev->max_request) { in cros_ec_cmd_xfer()
362 msg->outsize, in cros_ec_cmd_xfer()
368 if (msg->outsize > ec_dev->max_passthru) { in cros_ec_cmd_xfer()
371 msg->outsize, in cros_ec_cmd_xfer()
377 ret = send_command(ec_dev, msg); in cros_ec_cmd_xfer()