media: cros-ec-cec: Use cros_ec_cmd to send host commands
authorReka Norman <rekanorman@chromium.org>
Fri, 25 Aug 2023 02:43:54 +0000 (12:43 +1000)
committerHans Verkuil <hverkuil-cisco@xs4all.nl>
Wed, 27 Sep 2023 07:39:54 +0000 (09:39 +0200)
Use the cros_ec_cmd helper function to reduce the amount of boilerplate
when sending host commands.

Signed-off-by: Reka Norman <rekanorman@chromium.org>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
drivers/media/cec/platform/cros-ec/cros-ec-cec.c

index c17faf002877d463ba7b24fbb6cbb84f964395c0..8dd95fb385462b31d389c5dd4361ac2fcacf76ae 100644 (file)
@@ -95,18 +95,14 @@ static int cros_ec_cec_set_log_addr(struct cec_adapter *adap, u8 logical_addr)
 {
        struct cros_ec_cec *cros_ec_cec = adap->priv;
        struct cros_ec_device *cros_ec = cros_ec_cec->cros_ec;
-       struct {
-               struct cros_ec_command msg;
-               struct ec_params_cec_set data;
-       } __packed msg = {};
+       struct ec_params_cec_set params = {
+               .cmd = CEC_CMD_LOGICAL_ADDRESS,
+               .val = logical_addr,
+       };
        int ret;
 
-       msg.msg.command = EC_CMD_CEC_SET;
-       msg.msg.outsize = sizeof(msg.data);
-       msg.data.cmd = CEC_CMD_LOGICAL_ADDRESS;
-       msg.data.val = logical_addr;
-
-       ret = cros_ec_cmd_xfer_status(cros_ec, &msg.msg);
+       ret = cros_ec_cmd(cros_ec, 0, EC_CMD_CEC_SET, &params, sizeof(params),
+                         NULL, 0);
        if (ret < 0) {
                dev_err(cros_ec->dev,
                        "error setting CEC logical address on EC: %d\n", ret);
@@ -121,17 +117,13 @@ static int cros_ec_cec_transmit(struct cec_adapter *adap, u8 attempts,
 {
        struct cros_ec_cec *cros_ec_cec = adap->priv;
        struct cros_ec_device *cros_ec = cros_ec_cec->cros_ec;
-       struct {
-               struct cros_ec_command msg;
-               struct ec_params_cec_write data;
-       } __packed msg = {};
+       struct ec_params_cec_write params;
        int ret;
 
-       msg.msg.command = EC_CMD_CEC_WRITE_MSG;
-       msg.msg.outsize = cec_msg->len;
-       memcpy(msg.data.msg, cec_msg->msg, cec_msg->len);
+       memcpy(params.msg, cec_msg->msg, cec_msg->len);
 
-       ret = cros_ec_cmd_xfer_status(cros_ec, &msg.msg);
+       ret = cros_ec_cmd(cros_ec, 0, EC_CMD_CEC_WRITE_MSG, &params,
+                         cec_msg->len, NULL, 0);
        if (ret < 0) {
                dev_err(cros_ec->dev,
                        "error writing CEC msg on EC: %d\n", ret);
@@ -145,18 +137,14 @@ static int cros_ec_cec_adap_enable(struct cec_adapter *adap, bool enable)
 {
        struct cros_ec_cec *cros_ec_cec = adap->priv;
        struct cros_ec_device *cros_ec = cros_ec_cec->cros_ec;
-       struct {
-               struct cros_ec_command msg;
-               struct ec_params_cec_set data;
-       } __packed msg = {};
+       struct ec_params_cec_set params = {
+               .cmd = CEC_CMD_ENABLE,
+               .val = enable,
+       };
        int ret;
 
-       msg.msg.command = EC_CMD_CEC_SET;
-       msg.msg.outsize = sizeof(msg.data);
-       msg.data.cmd = CEC_CMD_ENABLE;
-       msg.data.val = enable;
-
-       ret = cros_ec_cmd_xfer_status(cros_ec, &msg.msg);
+       ret = cros_ec_cmd(cros_ec, 0, EC_CMD_CEC_SET, &params, sizeof(params),
+                         NULL, 0);
        if (ret < 0) {
                dev_err(cros_ec->dev,
                        "error %sabling CEC on EC: %d\n",