[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200125012105.59903-4-pmalani@chromium.org>
Date: Fri, 24 Jan 2020 17:21:07 -0800
From: Prashant Malani <pmalani@...omium.org>
To: enric.balletbo@...labora.com, bleung@...omium.org
Cc: linux-kernel@...r.kernel.org,
Prashant Malani <pmalani@...omium.org>
Subject: [PATCH 3/4] platform/chrome: Use send_cmd_msg in debugfs
Update Chrome EC's debugfs driver to use the cros_ec_send_cmd_msg()
wrapper instead of cros_ec_cmd_xfer_status() within the pdinfo_read()
function. This helps to remove some of the structure and buffer
definitions and some of the message buffer set up code.
Signed-off-by: Prashant Malani <pmalani@...omium.org>
---
drivers/platform/chrome/cros_ec_debugfs.c | 39 +++++++----------------
1 file changed, 12 insertions(+), 27 deletions(-)
diff --git a/drivers/platform/chrome/cros_ec_debugfs.c b/drivers/platform/chrome/cros_ec_debugfs.c
index 6ae484989d1f5..34c1c36be1c51 100644
--- a/drivers/platform/chrome/cros_ec_debugfs.c
+++ b/drivers/platform/chrome/cros_ec_debugfs.c
@@ -199,44 +199,29 @@ static ssize_t cros_ec_pdinfo_read(struct file *file,
char read_buf[EC_USB_PD_MAX_PORTS * 40], *p = read_buf;
struct cros_ec_debugfs *debug_info = file->private_data;
struct cros_ec_device *ec_dev = debug_info->ec->ec_dev;
- struct {
- struct cros_ec_command msg;
- union {
- struct ec_response_usb_pd_control_v1 resp;
- struct ec_params_usb_pd_control params;
- };
- } __packed ec_buf;
- struct cros_ec_command *msg;
- struct ec_response_usb_pd_control_v1 *resp;
- struct ec_params_usb_pd_control *params;
+ struct ec_response_usb_pd_control_v1 resp = {0};
+ struct ec_params_usb_pd_control params = {0};
int i;
- msg = &ec_buf.msg;
- params = (struct ec_params_usb_pd_control *)msg->data;
- resp = (struct ec_response_usb_pd_control_v1 *)msg->data;
-
- msg->command = EC_CMD_USB_PD_CONTROL;
- msg->version = 1;
- msg->insize = sizeof(*resp);
- msg->outsize = sizeof(*params);
-
/*
* Read status from all PD ports until failure, typically caused
* by attempting to read status on a port that doesn't exist.
*/
for (i = 0; i < EC_USB_PD_MAX_PORTS; ++i) {
- params->port = i;
- params->role = 0;
- params->mux = 0;
- params->swap = 0;
-
- if (cros_ec_cmd_xfer_status(ec_dev, msg) < 0)
+ params.port = i;
+ params.role = 0;
+ params.mux = 0;
+ params.swap = 0;
+
+ if (cros_ec_send_cmd_msg(ec_dev, 1, EC_CMD_USB_PD_CONTROL,
+ ¶ms, sizeof(params), &resp,
+ sizeof(resp)) < 0)
break;
p += scnprintf(p, sizeof(read_buf) + read_buf - p,
"p%d: %s en:%.2x role:%.2x pol:%.2x\n", i,
- resp->state, resp->enabled, resp->role,
- resp->polarity);
+ resp.state, resp.enabled, resp.role,
+ resp.polarity);
}
return simple_read_from_buffer(user_buf, count, ppos,
--
2.25.0.341.g760bfbb309-goog
Powered by blists - more mailing lists