lkml.org 
[lkml]   [2020]   [Feb]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH v2 13/17] pwm: cros-ec: Remove cros_ec_cmd_xfer_status()
Date
Convert existing usages of cros_ec_cmd_xfer_status() to cros_ec_cmd(),
which accomplishes the same thing but also does the EC message struct
setup, is defined in platform/chrome and is accessible by other
modules.

Signed-off-by: Prashant Malani <pmalani@chromium.org>
---

Changes in v2:
- Updated to use new function name and parameter list.
- Use C99 element setting for struct initialization.

drivers/pwm/pwm-cros-ec.c | 59 +++++++++++----------------------------
1 file changed, 16 insertions(+), 43 deletions(-)

diff --git a/drivers/pwm/pwm-cros-ec.c b/drivers/pwm/pwm-cros-ec.c
index 89497448d21775..57a1cab4cfacad 100644
--- a/drivers/pwm/pwm-cros-ec.c
+++ b/drivers/pwm/pwm-cros-ec.c
@@ -32,59 +32,32 @@ static inline struct cros_ec_pwm_device *pwm_to_cros_ec_pwm(struct pwm_chip *c)

static int cros_ec_pwm_set_duty(struct cros_ec_device *ec, u8 index, u16 duty)
{
- struct {
- struct cros_ec_command msg;
- struct ec_params_pwm_set_duty params;
- } __packed buf;
- struct ec_params_pwm_set_duty *params = &buf.params;
- struct cros_ec_command *msg = &buf.msg;
-
- memset(&buf, 0, sizeof(buf));
-
- msg->version = 0;
- msg->command = EC_CMD_PWM_SET_DUTY;
- msg->insize = 0;
- msg->outsize = sizeof(*params);
-
- params->duty = duty;
- params->pwm_type = EC_PWM_TYPE_GENERIC;
- params->index = index;
-
- return cros_ec_cmd_xfer_status(ec, msg);
+ struct ec_params_pwm_set_duty params = {
+ .duty = duty,
+ .pwm_type = EC_PWM_TYPE_GENERIC,
+ .index = index,
+ };
+
+ return cros_ec_cmd(ec, 0, EC_CMD_PWM_SET_DUTY, &params,
+ sizeof(params), NULL, 0, NULL);
}

static int __cros_ec_pwm_get_duty(struct cros_ec_device *ec, u8 index,
u32 *result)
{
- struct {
- struct cros_ec_command msg;
- union {
- struct ec_params_pwm_get_duty params;
- struct ec_response_pwm_get_duty resp;
- };
- } __packed buf;
- struct ec_params_pwm_get_duty *params = &buf.params;
- struct ec_response_pwm_get_duty *resp = &buf.resp;
- struct cros_ec_command *msg = &buf.msg;
+ struct ec_params_pwm_get_duty params = {
+ .pwm_type = EC_PWM_TYPE_GENERIC,
+ .index = index,
+ };
+ struct ec_response_pwm_get_duty resp = {0};
int ret;

- memset(&buf, 0, sizeof(buf));
-
- msg->version = 0;
- msg->command = EC_CMD_PWM_GET_DUTY;
- msg->insize = sizeof(*resp);
- msg->outsize = sizeof(*params);
-
- params->pwm_type = EC_PWM_TYPE_GENERIC;
- params->index = index;
-
- ret = cros_ec_cmd_xfer_status(ec, msg);
- if (result)
- *result = msg->result;
+ ret = cros_ec_cmd(ec, 0, EC_CMD_PWM_GET_DUTY, &params, sizeof(params),
+ &resp, sizeof(resp), result);
if (ret < 0)
return ret;

- return resp->duty;
+ return resp.duty;
}

static int cros_ec_pwm_get_duty(struct cros_ec_device *ec, u8 index)
--
2.25.0.341.g760bfbb309-goog
\
 
 \ /
  Last update: 2020-02-05 20:18    [W:0.037 / U:0.176 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site