* [PATCH 00/17] platform/chrome: Replace cros_ec_cmd_xfer_status
@ 2020-01-30 20:30 Prashant Malani
2020-01-30 20:30 ` [PATCH 12/17] power: supply: cros: Use cros_ec_send_cmd_msg() Prashant Malani
0 siblings, 1 reply; 2+ messages in thread
From: Prashant Malani @ 2020-01-30 20:30 UTC (permalink / raw)
To: linux-kernel
Cc: Prashant Malani, Akshu Agrawal, Alexandre Belloni,
moderated list:SOUND - SOC LAYER / DYNAMIC AUDIO POWER MANAGEM...,
Benjamin Tissoires, Dmitry Torokhov, Enric Balletbo i Serra,
Evan Green, Fabien Lahoudere, Guenter Roeck, Gwendal Grignou,
Hans Verkuil, Hartmut Knaack, Jonathan Cameron,
Lars-Peter Clausen, Lee Jones,
open list:I2C SUBSYSTEM HOST DRIVERS,
open list:IIO SUBSYSTEM AND DRIVERS, open list:HID CORE LAYER,
open list:MEDIA INPUT INFRASTRUCTURE (V4L/DVB),
open list:POWER SUPPLY CLASS/SUBSYSTEM and DRIVERS,
open list:PWM SUBSYSTEM,
open list:REAL TIME CLOCK (RTC) SUBSYSTEM, Mauro Carvalho Chehab,
Neil Armstrong, Nick Vaccaro, Peter Meerwald-Stadler,
Raul E Rangel, Uwe Kleine-König, Wolfram Sang
Many callers of cros_ec_cmd_xfer_status() use similar setup and cleanup
code, including setting up the cros_ec_command message struct and
copying the received buffer.
This series introduces a replacement function cros_ec_send_cmd_msg() that
performs this setup and teardown, and then updates all call sites that
used xfer_status() to use the new function instead.
The final patch in the series drops cros_ec_cmd_xfer_status() altogether.
Prashant Malani (17):
platform/chrome: Add EC command msg wrapper
platform/chrome: chardev: Use send_cmd_msg()
platform/chrome: proto: Use send_cmd_msg
platform/chrome: usbpd_logger: Use cmd_send_msg()
platform/chrome: sensorhub: Use send_cmd_msg()
platform/chrome: debugfs: Use send_cmd_msg()
platform/chrome: sysfs: Use send_cmd_msg()
extcon: cros_ec: Use cros_ec_send_cmd_msg()
hid: google-hammer: Use cros_ec_send_cmd_msg()
iio: cros_ec: Use cros_ec_send_cmd_msg()
ASoC: cros_ec_codec: Use cros_ec_send_cmd_msg()
power: supply: cros: Use cros_ec_send_cmd_msg()
pwm: cros-ec: Remove cros_ec_cmd_xfer_status()
rtc: cros-ec: Use cros_ec_send_cmd_msg()
media: cros-ec-cec: Use cros_ec_send_cmd_msg()
i2c: cros-ec-tunnel: Use cros_ec_send_cmd_msg()
platform/chrome: Drop cros_ec_cmd_xfer_status()
drivers/extcon/extcon-usbc-cros-ec.c | 62 ++------
drivers/hid/hid-google-hammer.c | 23 +--
drivers/i2c/busses/i2c-cros-ec-tunnel.c | 23 ++-
.../cros_ec_sensors/cros_ec_sensors_core.c | 43 +++---
.../media/platform/cros-ec-cec/cros-ec-cec.c | 39 ++---
drivers/platform/chrome/cros_ec_chardev.c | 18 +--
drivers/platform/chrome/cros_ec_debugfs.c | 135 ++++++------------
drivers/platform/chrome/cros_ec_proto.c | 75 ++++++----
drivers/platform/chrome/cros_ec_sensorhub.c | 29 ++--
drivers/platform/chrome/cros_ec_sysfs.c | 106 ++++++--------
drivers/platform/chrome/cros_usbpd_logger.c | 13 +-
drivers/power/supply/cros_usbpd-charger.c | 63 ++------
drivers/pwm/pwm-cros-ec.c | 27 ++--
drivers/rtc/rtc-cros-ec.c | 27 ++--
include/linux/platform_data/cros_ec_proto.h | 6 +-
sound/soc/codecs/cros_ec_codec.c | 71 +++------
16 files changed, 276 insertions(+), 484 deletions(-)
--
2.25.0.341.g760bfbb309-goog
^ permalink raw reply [flat|nested] 2+ messages in thread
* [PATCH 12/17] power: supply: cros: Use cros_ec_send_cmd_msg()
2020-01-30 20:30 [PATCH 00/17] platform/chrome: Replace cros_ec_cmd_xfer_status Prashant Malani
@ 2020-01-30 20:30 ` Prashant Malani
0 siblings, 0 replies; 2+ messages in thread
From: Prashant Malani @ 2020-01-30 20:30 UTC (permalink / raw)
To: linux-kernel
Cc: Prashant Malani, Benson Leung, Enric Balletbo i Serra,
Guenter Roeck, Sebastian Reichel,
open list:POWER SUPPLY CLASS/SUBSYSTEM and DRIVERS
Replace cros_usbpd_charger_ec_command() with cros_ec_send_cmd_msg()
which does the same thing, but is defined in a common location in
platform/chrome and exposed for other modules to use. This allows us to
remove cros_usbpd_charger_ec_command() entirely.
Signed-off-by: Prashant Malani <pmalani@chromium.org>
---
drivers/power/supply/cros_usbpd-charger.c | 63 ++++++-----------------
1 file changed, 15 insertions(+), 48 deletions(-)
diff --git a/drivers/power/supply/cros_usbpd-charger.c b/drivers/power/supply/cros_usbpd-charger.c
index ffad9ee03a6858..cacaca5737a6ee 100644
--- a/drivers/power/supply/cros_usbpd-charger.c
+++ b/drivers/power/supply/cros_usbpd-charger.c
@@ -92,46 +92,14 @@ static bool cros_usbpd_charger_port_is_dedicated(struct port_data *port)
return port->port_number >= port->charger->num_usbpd_ports;
}
-static int cros_usbpd_charger_ec_command(struct charger_data *charger,
- unsigned int version,
- unsigned int command,
- void *outdata,
- unsigned int outsize,
- void *indata,
- unsigned int insize)
-{
- struct cros_ec_dev *ec_dev = charger->ec_dev;
- struct cros_ec_command *msg;
- int ret;
-
- msg = kzalloc(sizeof(*msg) + max(outsize, insize), GFP_KERNEL);
- if (!msg)
- return -ENOMEM;
-
- msg->version = version;
- msg->command = ec_dev->cmd_offset + command;
- msg->outsize = outsize;
- msg->insize = insize;
-
- if (outsize)
- memcpy(msg->data, outdata, outsize);
-
- ret = cros_ec_cmd_xfer_status(charger->ec_device, msg);
- if (ret >= 0 && insize)
- memcpy(indata, msg->data, insize);
-
- kfree(msg);
- return ret;
-}
-
static int cros_usbpd_charger_get_num_ports(struct charger_data *charger)
{
struct ec_response_charge_port_count resp;
int ret;
- ret = cros_usbpd_charger_ec_command(charger, 0,
- EC_CMD_CHARGE_PORT_COUNT,
- NULL, 0, &resp, sizeof(resp));
+ ret = cros_ec_send_cmd_msg(charger->ec_device, 0,
+ EC_CMD_CHARGE_PORT_COUNT,
+ NULL, 0, &resp, sizeof(resp));
if (ret < 0)
return ret;
@@ -143,8 +111,8 @@ static int cros_usbpd_charger_get_usbpd_num_ports(struct charger_data *charger)
struct ec_response_usb_pd_ports resp;
int ret;
- ret = cros_usbpd_charger_ec_command(charger, 0, EC_CMD_USB_PD_PORTS,
- NULL, 0, &resp, sizeof(resp));
+ ret = cros_ec_send_cmd_msg(charger->ec_device, 0, EC_CMD_USB_PD_PORTS,
+ NULL, 0, &resp, sizeof(resp));
if (ret < 0)
return ret;
@@ -160,10 +128,9 @@ static int cros_usbpd_charger_get_discovery_info(struct port_data *port)
req.port = port->port_number;
- ret = cros_usbpd_charger_ec_command(charger, 0,
- EC_CMD_USB_PD_DISCOVERY,
- &req, sizeof(req),
- &resp, sizeof(resp));
+ ret = cros_ec_send_cmd_msg(charger->ec_device, 0,
+ EC_CMD_USB_PD_DISCOVERY, &req, sizeof(req),
+ &resp, sizeof(resp));
if (ret < 0) {
dev_err(charger->dev,
"Unable to query discovery info (err:0x%x)\n", ret);
@@ -190,10 +157,10 @@ static int cros_usbpd_charger_get_power_info(struct port_data *port)
int ret;
req.port = port->port_number;
- ret = cros_usbpd_charger_ec_command(charger, 0,
- EC_CMD_USB_PD_POWER_INFO,
- &req, sizeof(req),
- &resp, sizeof(resp));
+ ret = cros_ec_send_cmd_msg(charger->ec_device, 0,
+ EC_CMD_USB_PD_POWER_INFO,
+ &req, sizeof(req),
+ &resp, sizeof(resp));
if (ret < 0) {
dev_err(dev, "Unable to query PD power info (err:0x%x)\n", ret);
return ret;
@@ -335,9 +302,9 @@ static int cros_usbpd_charger_set_ext_power_limit(struct charger_data *charger,
req.current_lim = current_lim;
req.voltage_lim = voltage_lim;
- ret = cros_usbpd_charger_ec_command(charger, 0,
- EC_CMD_EXTERNAL_POWER_LIMIT,
- &req, sizeof(req), NULL, 0);
+ ret = cros_ec_send_cmd_msg(charger->ec_device, 0,
+ EC_CMD_EXTERNAL_POWER_LIMIT,
+ &req, sizeof(req), NULL, 0);
if (ret < 0)
dev_err(charger->dev,
"Unable to set the 'External Power Limit': %d\n", ret);
--
2.25.0.341.g760bfbb309-goog
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-01-30 20:35 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-30 20:30 [PATCH 00/17] platform/chrome: Replace cros_ec_cmd_xfer_status Prashant Malani
2020-01-30 20:30 ` [PATCH 12/17] power: supply: cros: Use cros_ec_send_cmd_msg() Prashant Malani
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).