linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/8] Migrate all cros_ec_cmd_xfer() calls to cros_ec_cmd_xfer_status()
@ 2020-02-20 15:58 Enric Balletbo i Serra
  2020-02-20 15:58 ` [PATCH 2/8] Input: cros_ec_keyb: Use cros_ec_cmd_xfer_status helper Enric Balletbo i Serra
  2020-02-26  1:12 ` [PATCH 0/8] Migrate all cros_ec_cmd_xfer() calls to cros_ec_cmd_xfer_status() Prashant Malani
  0 siblings, 2 replies; 4+ messages in thread
From: Enric Balletbo i Serra @ 2020-02-20 15:58 UTC (permalink / raw)
  To: linux-kernel
  Cc: Collabora Kernel ML, groeck, bleung, dtor, gwendal, pmalani,
	Enrico Granata, Andy Shevchenko, Jonathan Cameron, Ting Shen,
	Lee Jones, Neil Armstrong, Dmitry Torokhov, Fei Shao,
	Pi-Hsun Shih, Evan Green, linux-input

Dear all,

The purpose of this series is get rid of the remaining places where the
cros_ec_cmd_xfer() function is used in favour of the
cros_ec_cmd_xfer_status() helper. This allows us to make the
cros_ec_cmd_xfer() function private and only expose to the users a
single way to send commands to the Embedded Controller.

With these changes we also want to help future improvements in the
interface, like the Prashant's series (i.e [1]) to introduce a
cros_ec_cmd() that will allow us to remove more duplicated code in
different places.

Best regards,
 Enric

Note: Prashant, looks like you should fix your sendmail as the patches
      are not threaded.

[1] https://lkml.org/lkml/2020/2/5/614

Enric Balletbo i Serra (8):
  platform/chrome: cros_ec_proto: Report command not supported
  Input: cros_ec_keyb: Use cros_ec_cmd_xfer_status helper
  platform/chrome: cros_ec_vbc: Use cros_ec_cmd_xfer_status helper
  platform/chrome: cros_ec_chardev: Use cros_ec_cmd_xfer_status helper
  platform/chrome: cros_ec_sysfs: Use cros_ec_cmd_xfer_status helper
  platform/chrome: cros_ec_lightbar: Use cros_ec_cmd_xfer_status helper
  platform/chrome: cros_ec: Use cros_ec_cmd_xfer_status helper
  platform/chrome: cros_ec_proto: Do not export cros_ec_cmd_xfer()

 drivers/input/keyboard/cros_ec_keyb.c       | 14 +++---
 drivers/platform/chrome/cros_ec.c           |  2 +-
 drivers/platform/chrome/cros_ec_chardev.c   |  2 +-
 drivers/platform/chrome/cros_ec_lightbar.c  | 50 ++++++---------------
 drivers/platform/chrome/cros_ec_proto.c     | 14 ++++--
 drivers/platform/chrome/cros_ec_sysfs.c     | 36 +++++++--------
 drivers/platform/chrome/cros_ec_vbc.c       |  4 +-
 include/linux/platform_data/cros_ec_proto.h |  3 --
 8 files changed, 50 insertions(+), 75 deletions(-)

-- 
2.25.0


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

* [PATCH 2/8] Input: cros_ec_keyb: Use cros_ec_cmd_xfer_status helper
  2020-02-20 15:58 [PATCH 0/8] Migrate all cros_ec_cmd_xfer() calls to cros_ec_cmd_xfer_status() Enric Balletbo i Serra
@ 2020-02-20 15:58 ` Enric Balletbo i Serra
  2020-03-02 10:08   ` Enric Balletbo i Serra
  2020-02-26  1:12 ` [PATCH 0/8] Migrate all cros_ec_cmd_xfer() calls to cros_ec_cmd_xfer_status() Prashant Malani
  1 sibling, 1 reply; 4+ messages in thread
From: Enric Balletbo i Serra @ 2020-02-20 15:58 UTC (permalink / raw)
  To: linux-kernel
  Cc: Collabora Kernel ML, groeck, bleung, dtor, gwendal, pmalani,
	Jonathan Cameron, Ting Shen, Neil Armstrong, Dmitry Torokhov,
	Fei Shao, linux-input

This patch makes use of cros_ec_cmd_xfer_status() instead of
cros_ec_cmd_xfer(). In this case there is no advantage of doing this
apart from that we want to make cros_ec_cmd_xfer() a private function
for the EC protocol and let people only use the
cros_ec_cmd_xfer_status() to return Linux standard error codes.

Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
---

 drivers/input/keyboard/cros_ec_keyb.c | 14 +++++---------
 1 file changed, 5 insertions(+), 9 deletions(-)

diff --git a/drivers/input/keyboard/cros_ec_keyb.c b/drivers/input/keyboard/cros_ec_keyb.c
index 2b71c5a51f90..fc1793ca2f17 100644
--- a/drivers/input/keyboard/cros_ec_keyb.c
+++ b/drivers/input/keyboard/cros_ec_keyb.c
@@ -347,18 +347,14 @@ static int cros_ec_keyb_info(struct cros_ec_device *ec_dev,
 	params->info_type = info_type;
 	params->event_type = event_type;
 
-	ret = cros_ec_cmd_xfer(ec_dev, msg);
-	if (ret < 0) {
-		dev_warn(ec_dev->dev, "Transfer error %d/%d: %d\n",
-			 (int)info_type, (int)event_type, ret);
-	} else if (msg->result == EC_RES_INVALID_VERSION) {
+	ret = cros_ec_cmd_xfer_status(ec_dev, msg);
+	if (ret == -ENOTSUPP) {
 		/* With older ECs we just return 0 for everything */
 		memset(result, 0, result_size);
 		ret = 0;
-	} else if (msg->result != EC_RES_SUCCESS) {
-		dev_warn(ec_dev->dev, "Error getting info %d/%d: %d\n",
-			 (int)info_type, (int)event_type, msg->result);
-		ret = -EPROTO;
+	} else if (ret < 0) {
+		dev_warn(ec_dev->dev, "Transfer error %d/%d: %d\n",
+			 (int)info_type, (int)event_type, ret);
 	} else if (ret != result_size) {
 		dev_warn(ec_dev->dev, "Wrong size %d/%d: %d != %zu\n",
 			 (int)info_type, (int)event_type,
-- 
2.25.0


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

* Re: [PATCH 0/8] Migrate all cros_ec_cmd_xfer() calls to cros_ec_cmd_xfer_status()
  2020-02-20 15:58 [PATCH 0/8] Migrate all cros_ec_cmd_xfer() calls to cros_ec_cmd_xfer_status() Enric Balletbo i Serra
  2020-02-20 15:58 ` [PATCH 2/8] Input: cros_ec_keyb: Use cros_ec_cmd_xfer_status helper Enric Balletbo i Serra
@ 2020-02-26  1:12 ` Prashant Malani
  1 sibling, 0 replies; 4+ messages in thread
From: Prashant Malani @ 2020-02-26  1:12 UTC (permalink / raw)
  To: Enric Balletbo i Serra
  Cc: linux-kernel, Collabora Kernel ML, groeck, bleung, dtor, gwendal,
	Enrico Granata, Andy Shevchenko, Jonathan Cameron, Ting Shen,
	Lee Jones, Neil Armstrong, Dmitry Torokhov, Fei Shao,
	Pi-Hsun Shih, Evan Green, linux-input

On Thu, Feb 20, 2020 at 04:58:51PM +0100, Enric Balletbo i Serra wrote:
> Dear all,
> 
> The purpose of this series is get rid of the remaining places where the
> cros_ec_cmd_xfer() function is used in favour of the
> cros_ec_cmd_xfer_status() helper. This allows us to make the
> cros_ec_cmd_xfer() function private and only expose to the users a
> single way to send commands to the Embedded Controller.
> 
> With these changes we also want to help future improvements in the
> interface, like the Prashant's series (i.e [1]) to introduce a
> cros_ec_cmd() that will allow us to remove more duplicated code in
> different places.
> 
> Best regards,
>  Enric
> 
> Note: Prashant, looks like you should fix your sendmail as the patches
>       are not threaded.
> 
> [1] https://lkml.org/lkml/2020/2/5/614
> 
> Enric Balletbo i Serra (8):
>   platform/chrome: cros_ec_proto: Report command not supported
>   Input: cros_ec_keyb: Use cros_ec_cmd_xfer_status helper
>   platform/chrome: cros_ec_vbc: Use cros_ec_cmd_xfer_status helper
>   platform/chrome: cros_ec_chardev: Use cros_ec_cmd_xfer_status helper
>   platform/chrome: cros_ec_sysfs: Use cros_ec_cmd_xfer_status helper
>   platform/chrome: cros_ec_lightbar: Use cros_ec_cmd_xfer_status helper
>   platform/chrome: cros_ec: Use cros_ec_cmd_xfer_status helper
>   platform/chrome: cros_ec_proto: Do not export cros_ec_cmd_xfer()

I picked this series on a device running 4.19 and didn't see any
unusual behaviour or dmesg logs, so for the entire series:

Tested-by: Prashant Malani <pmalani@chromium.org>
> 
>  drivers/input/keyboard/cros_ec_keyb.c       | 14 +++---
>  drivers/platform/chrome/cros_ec.c           |  2 +-
>  drivers/platform/chrome/cros_ec_chardev.c   |  2 +-
>  drivers/platform/chrome/cros_ec_lightbar.c  | 50 ++++++---------------
>  drivers/platform/chrome/cros_ec_proto.c     | 14 ++++--
>  drivers/platform/chrome/cros_ec_sysfs.c     | 36 +++++++--------
>  drivers/platform/chrome/cros_ec_vbc.c       |  4 +-
>  include/linux/platform_data/cros_ec_proto.h |  3 --
>  8 files changed, 50 insertions(+), 75 deletions(-)
> 
> -- 
> 2.25.0
> 

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

* Re: [PATCH 2/8] Input: cros_ec_keyb: Use cros_ec_cmd_xfer_status helper
  2020-02-20 15:58 ` [PATCH 2/8] Input: cros_ec_keyb: Use cros_ec_cmd_xfer_status helper Enric Balletbo i Serra
@ 2020-03-02 10:08   ` Enric Balletbo i Serra
  0 siblings, 0 replies; 4+ messages in thread
From: Enric Balletbo i Serra @ 2020-03-02 10:08 UTC (permalink / raw)
  To: linux-kernel
  Cc: Collabora Kernel ML, groeck, bleung, dtor, gwendal, pmalani,
	Jonathan Cameron, Ting Shen, Neil Armstrong, Dmitry Torokhov,
	Fei Shao, linux-input

Hi Dmitry,

Gentle ping, I'd like feedback from you on this series, and are you fine with
this change?

Thanks,
 Enric

On 20/2/20 16:58, Enric Balletbo i Serra wrote:
> This patch makes use of cros_ec_cmd_xfer_status() instead of
> cros_ec_cmd_xfer(). In this case there is no advantage of doing this
> apart from that we want to make cros_ec_cmd_xfer() a private function
> for the EC protocol and let people only use the
> cros_ec_cmd_xfer_status() to return Linux standard error codes.
> 
> Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> ---
> 
>  drivers/input/keyboard/cros_ec_keyb.c | 14 +++++---------
>  1 file changed, 5 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/input/keyboard/cros_ec_keyb.c b/drivers/input/keyboard/cros_ec_keyb.c
> index 2b71c5a51f90..fc1793ca2f17 100644
> --- a/drivers/input/keyboard/cros_ec_keyb.c
> +++ b/drivers/input/keyboard/cros_ec_keyb.c
> @@ -347,18 +347,14 @@ static int cros_ec_keyb_info(struct cros_ec_device *ec_dev,
>  	params->info_type = info_type;
>  	params->event_type = event_type;
>  
> -	ret = cros_ec_cmd_xfer(ec_dev, msg);
> -	if (ret < 0) {
> -		dev_warn(ec_dev->dev, "Transfer error %d/%d: %d\n",
> -			 (int)info_type, (int)event_type, ret);
> -	} else if (msg->result == EC_RES_INVALID_VERSION) {
> +	ret = cros_ec_cmd_xfer_status(ec_dev, msg);
> +	if (ret == -ENOTSUPP) {
>  		/* With older ECs we just return 0 for everything */
>  		memset(result, 0, result_size);
>  		ret = 0;
> -	} else if (msg->result != EC_RES_SUCCESS) {
> -		dev_warn(ec_dev->dev, "Error getting info %d/%d: %d\n",
> -			 (int)info_type, (int)event_type, msg->result);
> -		ret = -EPROTO;
> +	} else if (ret < 0) {
> +		dev_warn(ec_dev->dev, "Transfer error %d/%d: %d\n",
> +			 (int)info_type, (int)event_type, ret);
>  	} else if (ret != result_size) {
>  		dev_warn(ec_dev->dev, "Wrong size %d/%d: %d != %zu\n",
>  			 (int)info_type, (int)event_type,
> 

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

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

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-20 15:58 [PATCH 0/8] Migrate all cros_ec_cmd_xfer() calls to cros_ec_cmd_xfer_status() Enric Balletbo i Serra
2020-02-20 15:58 ` [PATCH 2/8] Input: cros_ec_keyb: Use cros_ec_cmd_xfer_status helper Enric Balletbo i Serra
2020-03-02 10:08   ` Enric Balletbo i Serra
2020-02-26  1:12 ` [PATCH 0/8] Migrate all cros_ec_cmd_xfer() calls to cros_ec_cmd_xfer_status() 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).