linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/17] platform/chrome: Replace cros_ec_cmd_xfer_status
@ 2020-01-30 20:30 Prashant Malani
  2020-01-30 20:31 ` [PATCH 15/17] media: cros-ec-cec: Use cros_ec_send_cmd_msg() Prashant Malani
  0 siblings, 1 reply; 4+ 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] 4+ messages in thread

* [PATCH 15/17] media: cros-ec-cec: 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:31 ` Prashant Malani
  2020-02-02 22:08   ` kbuild test robot
  2020-02-03  5:35   ` kbuild test robot
  0 siblings, 2 replies; 4+ messages in thread
From: Prashant Malani @ 2020-01-30 20:31 UTC (permalink / raw)
  To: linux-kernel
  Cc: Prashant Malani, Mauro Carvalho Chehab, Benson Leung,
	Enric Balletbo i Serra, Guenter Roeck, Hans Verkuil,
	Neil Armstrong, Gwendal Grignou,
	open list:MEDIA INPUT INFRASTRUCTURE (V4L/DVB)

Replace cros_ec_cmd_xfer_status() with cros_ec_send_cmd_msg() which does
the message buffer setup and cleanup, but is located in platform/chrome
and used by other drivers.

Signed-off-by: Prashant Malani <pmalani@chromium.org>
---
 .../media/platform/cros-ec-cec/cros-ec-cec.c  | 39 +++++++------------
 1 file changed, 14 insertions(+), 25 deletions(-)

diff --git a/drivers/media/platform/cros-ec-cec/cros-ec-cec.c b/drivers/media/platform/cros-ec-cec/cros-ec-cec.c
index f048e89947850e..0ee7354dca9724 100644
--- a/drivers/media/platform/cros-ec-cec/cros-ec-cec.c
+++ b/drivers/media/platform/cros-ec-cec/cros-ec-cec.c
@@ -94,18 +94,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 data;
 	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;
+	data.cmd = CEC_CMD_LOGICAL_ADDRESS;
+	data.val = logical_addr;
 
-	ret = cros_ec_cmd_xfer_status(cros_ec, &msg.msg);
+	ret = cros_ec_send_cmd_msg(cros_ec, 0, EC_CMD_CEC_SET, &data,
+				   sizeof(data), NULL, 0);
 	if (ret < 0) {
 		dev_err(cros_ec->dev,
 			"error setting CEC logical address on EC: %d\n", ret);
@@ -120,17 +116,14 @@ 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 data = {};
 	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(data.msg, cec_msg->msg, cec_msg->len);
 
-	ret = cros_ec_cmd_xfer_status(cros_ec, &msg.msg);
+	ret = cros_ec_send_cmd_msg(cros_ec, 0, EC_CMD_CEC_WRITE_MSG,
+				   &data, sizeof(cec_msg->len), NULL, 0);
 	if (ret < 0) {
 		dev_err(cros_ec->dev,
 			"error writing CEC msg on EC: %d\n", ret);
@@ -144,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 data = {0};
 	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;
+	data.cmd = CEC_CMD_ENABLE;
+	data.val = enable;
 
-	ret = cros_ec_cmd_xfer_status(cros_ec, &msg.msg);
+	ret = cros_ec_send_cmd_msg(cros_ec, 0, EC_CMD_CEC_SET, &data,
+				   sizeof(data), NULL, 0);
 	if (ret < 0) {
 		dev_err(cros_ec->dev,
 			"error %sabling CEC on EC: %d\n",
-- 
2.25.0.341.g760bfbb309-goog


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 15/17] media: cros-ec-cec: Use cros_ec_send_cmd_msg()
  2020-01-30 20:31 ` [PATCH 15/17] media: cros-ec-cec: Use cros_ec_send_cmd_msg() Prashant Malani
@ 2020-02-02 22:08   ` kbuild test robot
  2020-02-03  5:35   ` kbuild test robot
  1 sibling, 0 replies; 4+ messages in thread
From: kbuild test robot @ 2020-02-02 22:08 UTC (permalink / raw)
  To: Prashant Malani
  Cc: kbuild-all, linux-kernel, Prashant Malani, Mauro Carvalho Chehab,
	Benson Leung, Enric Balletbo i Serra, Guenter Roeck,
	Hans Verkuil, Neil Armstrong, Gwendal Grignou,
	open list:MEDIA INPUT INFRASTRUCTURE (V4L/DVB)

[-- Attachment #1: Type: text/plain, Size: 3602 bytes --]

Hi Prashant,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[cannot apply to chrome-platform-linux/for-next abelloni/rtc-next linux/master v5.5 next-20200130]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Prashant-Malani/platform-chrome-Replace-cros_ec_cmd_xfer_status/20200203-022935
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 94f2630b18975bb56eee5d1a36371db967643479
config: x86_64-randconfig-b002-20200202 (attached as .config)
compiler: gcc-7 (Debian 7.5.0-3) 7.5.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/media/platform/cros-ec-cec/cros-ec-cec.c: In function 'cros_ec_cec_transmit':
>> drivers/media/platform/cros-ec-cec/cros-ec-cec.c:122:2: error: 'msg' undeclared (first use in this function); did you mean 'msr'?
     msg.msg.outsize = cec_msg->len;
     ^~~
     msr
   drivers/media/platform/cros-ec-cec/cros-ec-cec.c:122:2: note: each undeclared identifier is reported only once for each function it appears in

vim +122 drivers/media/platform/cros-ec-cec/cros-ec-cec.c

cd70de2d356ee6 Neil Armstrong  2018-07-04  113  
cd70de2d356ee6 Neil Armstrong  2018-07-04  114  static int cros_ec_cec_transmit(struct cec_adapter *adap, u8 attempts,
cd70de2d356ee6 Neil Armstrong  2018-07-04  115  				u32 signal_free_time, struct cec_msg *cec_msg)
cd70de2d356ee6 Neil Armstrong  2018-07-04  116  {
cd70de2d356ee6 Neil Armstrong  2018-07-04  117  	struct cros_ec_cec *cros_ec_cec = adap->priv;
cd70de2d356ee6 Neil Armstrong  2018-07-04  118  	struct cros_ec_device *cros_ec = cros_ec_cec->cros_ec;
bd6054aba6ffe7 Prashant Malani 2020-01-30  119  	struct ec_params_cec_write data = {};
cd70de2d356ee6 Neil Armstrong  2018-07-04  120  	int ret;
cd70de2d356ee6 Neil Armstrong  2018-07-04  121  
cd70de2d356ee6 Neil Armstrong  2018-07-04 @122  	msg.msg.outsize = cec_msg->len;
bd6054aba6ffe7 Prashant Malani 2020-01-30  123  	memcpy(data.msg, cec_msg->msg, cec_msg->len);
cd70de2d356ee6 Neil Armstrong  2018-07-04  124  
bd6054aba6ffe7 Prashant Malani 2020-01-30  125  	ret = cros_ec_send_cmd_msg(cros_ec, 0, EC_CMD_CEC_WRITE_MSG,
bd6054aba6ffe7 Prashant Malani 2020-01-30  126  				   &data, sizeof(cec_msg->len), NULL, 0);
cd70de2d356ee6 Neil Armstrong  2018-07-04  127  	if (ret < 0) {
cd70de2d356ee6 Neil Armstrong  2018-07-04  128  		dev_err(cros_ec->dev,
cd70de2d356ee6 Neil Armstrong  2018-07-04  129  			"error writing CEC msg on EC: %d\n", ret);
cd70de2d356ee6 Neil Armstrong  2018-07-04  130  		return ret;
cd70de2d356ee6 Neil Armstrong  2018-07-04  131  	}
cd70de2d356ee6 Neil Armstrong  2018-07-04  132  
cd70de2d356ee6 Neil Armstrong  2018-07-04  133  	return 0;
cd70de2d356ee6 Neil Armstrong  2018-07-04  134  }
cd70de2d356ee6 Neil Armstrong  2018-07-04  135  

:::::: The code at line 122 was first introduced by commit
:::::: cd70de2d356ee692477276bd5d6bc88c71a48733 media: platform: Add ChromeOS EC CEC driver

:::::: TO: Neil Armstrong <narmstrong@baylibre.com>
:::::: CC: Lee Jones <lee.jones@linaro.org>

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 35108 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 15/17] media: cros-ec-cec: Use cros_ec_send_cmd_msg()
  2020-01-30 20:31 ` [PATCH 15/17] media: cros-ec-cec: Use cros_ec_send_cmd_msg() Prashant Malani
  2020-02-02 22:08   ` kbuild test robot
@ 2020-02-03  5:35   ` kbuild test robot
  1 sibling, 0 replies; 4+ messages in thread
From: kbuild test robot @ 2020-02-03  5:35 UTC (permalink / raw)
  To: Prashant Malani
  Cc: kbuild-all, linux-kernel, Prashant Malani, Mauro Carvalho Chehab,
	Benson Leung, Enric Balletbo i Serra, Guenter Roeck,
	Hans Verkuil, Neil Armstrong, Gwendal Grignou,
	open list:MEDIA INPUT INFRASTRUCTURE (V4L/DVB)

[-- Attachment #1: Type: text/plain, Size: 3750 bytes --]

Hi Prashant,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[cannot apply to chrome-platform-linux/for-next abelloni/rtc-next linux/master v5.5 next-20200131]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Prashant-Malani/platform-chrome-Replace-cros_ec_cmd_xfer_status/20200203-022935
base:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 94f2630b18975bb56eee5d1a36371db967643479
config: s390-allmodconfig (attached as .config)
compiler: s390-linux-gcc (GCC) 7.5.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.5.0 make.cross ARCH=s390 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/media/platform/cros-ec-cec/cros-ec-cec.c: In function 'cros_ec_cec_transmit':
>> drivers/media/platform/cros-ec-cec/cros-ec-cec.c:122:2: error: 'msg' undeclared (first use in this function); did you mean 'cspg'?
     msg.msg.outsize = cec_msg->len;
     ^~~
     cspg
   drivers/media/platform/cros-ec-cec/cros-ec-cec.c:122:2: note: each undeclared identifier is reported only once for each function it appears in

vim +122 drivers/media/platform/cros-ec-cec/cros-ec-cec.c

cd70de2d356ee6 Neil Armstrong  2018-07-04  113  
cd70de2d356ee6 Neil Armstrong  2018-07-04  114  static int cros_ec_cec_transmit(struct cec_adapter *adap, u8 attempts,
cd70de2d356ee6 Neil Armstrong  2018-07-04  115  				u32 signal_free_time, struct cec_msg *cec_msg)
cd70de2d356ee6 Neil Armstrong  2018-07-04  116  {
cd70de2d356ee6 Neil Armstrong  2018-07-04  117  	struct cros_ec_cec *cros_ec_cec = adap->priv;
cd70de2d356ee6 Neil Armstrong  2018-07-04  118  	struct cros_ec_device *cros_ec = cros_ec_cec->cros_ec;
bd6054aba6ffe7 Prashant Malani 2020-01-30  119  	struct ec_params_cec_write data = {};
cd70de2d356ee6 Neil Armstrong  2018-07-04  120  	int ret;
cd70de2d356ee6 Neil Armstrong  2018-07-04  121  
cd70de2d356ee6 Neil Armstrong  2018-07-04 @122  	msg.msg.outsize = cec_msg->len;
bd6054aba6ffe7 Prashant Malani 2020-01-30  123  	memcpy(data.msg, cec_msg->msg, cec_msg->len);
cd70de2d356ee6 Neil Armstrong  2018-07-04  124  
bd6054aba6ffe7 Prashant Malani 2020-01-30  125  	ret = cros_ec_send_cmd_msg(cros_ec, 0, EC_CMD_CEC_WRITE_MSG,
bd6054aba6ffe7 Prashant Malani 2020-01-30  126  				   &data, sizeof(cec_msg->len), NULL, 0);
cd70de2d356ee6 Neil Armstrong  2018-07-04  127  	if (ret < 0) {
cd70de2d356ee6 Neil Armstrong  2018-07-04  128  		dev_err(cros_ec->dev,
cd70de2d356ee6 Neil Armstrong  2018-07-04  129  			"error writing CEC msg on EC: %d\n", ret);
cd70de2d356ee6 Neil Armstrong  2018-07-04  130  		return ret;
cd70de2d356ee6 Neil Armstrong  2018-07-04  131  	}
cd70de2d356ee6 Neil Armstrong  2018-07-04  132  
cd70de2d356ee6 Neil Armstrong  2018-07-04  133  	return 0;
cd70de2d356ee6 Neil Armstrong  2018-07-04  134  }
cd70de2d356ee6 Neil Armstrong  2018-07-04  135  

:::::: The code at line 122 was first introduced by commit
:::::: cd70de2d356ee692477276bd5d6bc88c71a48733 media: platform: Add ChromeOS EC CEC driver

:::::: TO: Neil Armstrong <narmstrong@baylibre.com>
:::::: CC: Lee Jones <lee.jones@linaro.org>

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 57998 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-02-03  5:37 UTC | newest]

Thread overview: 4+ 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:31 ` [PATCH 15/17] media: cros-ec-cec: Use cros_ec_send_cmd_msg() Prashant Malani
2020-02-02 22:08   ` kbuild test robot
2020-02-03  5:35   ` kbuild test robot

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).