platform/chrome: cros_ec_proto: Add version for ec_command
authorPrashant Malani <pmalani@chromium.org>
Thu, 30 Sep 2021 02:23:54 +0000 (19:23 -0700)
committerEnric Balletbo i Serra <enric.balletbo@collabora.com>
Thu, 30 Sep 2021 08:09:47 +0000 (10:09 +0200)
Add a version parameter to cros_ec_command() for callers that may want
to specify which version of the host command they would like to use.

Signed-off-by: Prashant Malani <pmalani@chromium.org>
Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Link: https://lore.kernel.org/r/20210930022403.3358070-5-pmalani@chromium.org
drivers/platform/chrome/cros_ec_proto.c
drivers/platform/chrome/cros_usbpd_notify.c
include/linux/platform_data/cros_ec_proto.h

index fd114b5..a9f1867 100644 (file)
@@ -915,6 +915,7 @@ EXPORT_SYMBOL_GPL(cros_ec_get_sensor_count);
  * cros_ec_command - Send a command to the EC.
  *
  * @ec_dev: EC device
+ * @version: EC command version
  * @command: EC command
  * @outdata: EC command output data
  * @outsize: Size of outdata
@@ -924,6 +925,7 @@ EXPORT_SYMBOL_GPL(cros_ec_get_sensor_count);
  * Return: >= 0 on success, negative error number on failure.
  */
 int cros_ec_command(struct cros_ec_device *ec_dev,
+                   unsigned int version,
                    int command,
                    void *outdata,
                    int outsize,
@@ -937,6 +939,7 @@ int cros_ec_command(struct cros_ec_device *ec_dev,
        if (!msg)
                return -ENOMEM;
 
+       msg->version = version;
        msg->command = command;
        msg->outsize = outsize;
        msg->insize = insize;
index 8605094..91ce6be 100644 (file)
@@ -71,7 +71,7 @@ static void cros_usbpd_get_event_and_notify(struct device  *dev,
        }
 
        /* Check for PD host events on EC. */
-       ret = cros_ec_command(ec_dev, EC_CMD_PD_HOST_EVENT_STATUS,
+       ret = cros_ec_command(ec_dev, 0, EC_CMD_PD_HOST_EVENT_STATUS,
                              NULL, 0, &host_event_status, sizeof(host_event_status));
        if (ret < 0) {
                dev_warn(dev, "Can't get host event status (err: %d)\n", ret);
index f833473..9d37081 100644 (file)
@@ -231,8 +231,8 @@ bool cros_ec_check_features(struct cros_ec_dev *ec, int feature);
 
 int cros_ec_get_sensor_count(struct cros_ec_dev *ec);
 
-int cros_ec_command(struct cros_ec_device *ec_dev, int command, void *outdata, int outsize,
-                   void *indata, int insize);
+int cros_ec_command(struct cros_ec_device *ec_dev, unsigned int version, int command, void *outdata,
+                   int outsize, void *indata, int insize);
 
 /**
  * cros_ec_get_time_ns() - Return time in ns.