All of lore.kernel.org
 help / color / mirror / Atom feed
From: Prashant Malani <pmalani@chromium.org>
To: Jonathan Cameron <jic23@kernel.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Hartmut Knaack <knaack.h@gmx.de>,
	Lars-Peter Clausen <lars@metafoo.de>,
	Peter Meerwald-Stadler <pmeerw@pmeerw.net>,
	Benson Leung <bleung@chromium.org>,
	Enric Balletbo i Serra <enric.balletbo@collabora.com>,
	Guenter Roeck <groeck@chromium.org>,
	Gwendal Grignou <gwendal@chromium.org>,
	Fabien Lahoudere <fabien.lahoudere@collabora.com>,
	Nick Vaccaro <nvaccaro@chromium.org>,
	"open list:IIO SUBSYSTEM AND DRIVERS" <linux-iio@vger.kernel.org>
Subject: Re: [PATCH 10/17] iio: cros_ec: Use cros_ec_send_cmd_msg()
Date: Mon, 3 Feb 2020 10:31:40 -0800	[thread overview]
Message-ID: <CACeCKacjecNRnQ=YRVZjtuZvZmvd_=wd7MGb22bmWyRm8+-0oA@mail.gmail.com> (raw)
In-Reply-To: <20200202094342.108849ab@archlinux>

Hi Jonathan, Thanks for the comments. Please see responses inline.

On Sun, Feb 2, 2020 at 1:43 AM Jonathan Cameron <jic23@kernel.org> wrote:
>
> On Thu, 30 Jan 2020 12:30:54 -0800
> Prashant Malani <pmalani@chromium.org> wrote:
>
> > Replace cros_ec_cmd_xfer_status() with cros_ec_send_cmd_msg()
> > which does the message buffer setup and cleanup.
> >
> > Signed-off-by: Prashant Malani <pmalani@chromium.org>
>
> In a series like this, make sure that patch 1 with the actual code being
> pulled out is sent to everyone.  Looking at what we have here, this
> doesn't seem to fit well at all for one case, and I'm can't say the
> other case shows much advantage either.

Sorry about that. I'll be sure to add maintainers to Patch 1 in the
next versions.
I tried to follow : https://lwn.net/Articles/585782/ , but I think the
script might not be suited to this use case.
>
> Jonathan
>
> > ---
> >  .../cros_ec_sensors/cros_ec_sensors_core.c    | 43 +++++++++----------
> >  1 file changed, 21 insertions(+), 22 deletions(-)
> >
> > diff --git a/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c b/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c
> > index 81a7f692de2f37..f92032e97a84d7 100644
> > --- a/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c
> > +++ b/drivers/iio/common/cros_ec_sensors/cros_ec_sensors_core.c
> > @@ -31,24 +31,16 @@ static int cros_ec_get_host_cmd_version_mask(struct cros_ec_device *ec_dev,
> >                                            u16 cmd_offset, u16 cmd, u32 *mask)
> >  {
> >       int ret;
> > -     struct {
> > -             struct cros_ec_command msg;
> > -             union {
> > -                     struct ec_params_get_cmd_versions params;
> > -                     struct ec_response_get_cmd_versions resp;
> > -             };
> > -     } __packed buf = {
> > -             .msg = {
> > -                     .command = EC_CMD_GET_CMD_VERSIONS + cmd_offset,
> > -                     .insize = sizeof(struct ec_response_get_cmd_versions),
> > -                     .outsize = sizeof(struct ec_params_get_cmd_versions)
> > -                     },
> > -             .params = {.cmd = cmd}
> > -     };
> > -
> > -     ret = cros_ec_cmd_xfer_status(ec_dev, &buf.msg);
> > +     struct ec_params_get_cmd_versions params = {0};
> > +     struct ec_response_get_cmd_versions resp = {0};
> > +
> > +     params.cmd = cmd;
> Use c99 element setting to set this directly rather than zeroing
> explicitly then setting the element.
>
> Something like.
>
> struct ec_params_get_cmde_versions params = {
>         .cmd = cmd;
> };
Noted.
>
> > +     ret = cros_ec_send_cmd_msg(ec_dev, 0,
> > +                                EC_CMD_GET_CMD_VERSIONS + cmd_offset,
> > +                                &params, sizeof(params),
> > +                                &resp, sizeof(resp));
> >       if (ret >= 0)
> > -             *mask = buf.resp.version_mask;
> > +             *mask = resp.version_mask;
> >       return ret;
> >  }
> >
> > @@ -164,15 +156,22 @@ int cros_ec_motion_send_host_cmd(struct cros_ec_sensors_core_state *state,
> >                                u16 opt_length)
> >  {
> >       int ret;
> > +     struct cros_ec_command *msg = state->msg;
>
> With this change the code becomes less readable and needs a comment to explain
> why it is doing something odd.   Either you need to figure out how to
> make this fit properly such that the comment is not needed, or leave
> the code alone.
Noted. Perhaps we can use cros_ec_cmd_xfer() instead of
cros_ec_cmd_xfer_status(). That I think will
keep readability the same and remove the need for comments.
>
> >
> >       if (opt_length)
> > -             state->msg->insize = min(opt_length, state->ec->max_response);
> > +             msg->insize = min(opt_length, state->ec->max_response);
> >       else
> > -             state->msg->insize = state->ec->max_response;
> > +             msg->insize = state->ec->max_response;
> >
> > -     memcpy(state->msg->data, &state->param, sizeof(state->param));
> > -
> > -     ret = cros_ec_cmd_xfer_status(state->ec, state->msg);
> > +     /*
> > +      * In order to not disrupt the usage of struct cros_ec_command *msg,
> > +      * which is defined higher up in the call stack, we pass in its
> > +      * members to cros_ec_send_cmd_msg, instead of removing it at all
> > +      * calling locations.
> > +      */
> > +     ret = cros_ec_send_cmd_msg(state->ec, msg->version, msg->command,
> > +                                &state->param, sizeof(state->param),
> > +                                msg->data, msg->insize);
> >       if (ret < 0)
> >               return ret;
> >
>

  reply	other threads:[~2020-02-03 18:31 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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
2020-01-30 20:30 ` [PATCH 01/17] platform/chrome: Add EC command msg wrapper Prashant Malani
2020-02-03 15:27   ` Enric Balletbo i Serra
2020-02-03 18:24     ` Prashant Malani
2020-01-30 20:30 ` [PATCH 02/17] platform/chrome: chardev: Use send_cmd_msg() Prashant Malani
2020-01-30 20:30 ` [PATCH 03/17] platform/chrome: proto: Use send_cmd_msg Prashant Malani
2020-01-30 20:30 ` [PATCH 04/17] platform/chrome: usbpd_logger: Use cmd_send_msg() Prashant Malani
2020-01-30 20:30 ` [PATCH 05/17] platform/chrome: sensorhub: Use send_cmd_msg() Prashant Malani
2020-01-30 20:30 ` [PATCH 06/17] platform/chrome: debugfs: " Prashant Malani
2020-01-30 20:30 ` [PATCH 07/17] platform/chrome: sysfs: " Prashant Malani
2020-01-30 20:30 ` [PATCH 08/17] extcon: cros_ec: Use cros_ec_send_cmd_msg() Prashant Malani
2020-01-30 20:30 ` [PATCH 09/17] hid: google-hammer: " Prashant Malani
2020-01-30 20:30 ` [PATCH 10/17] iio: cros_ec: " Prashant Malani
2020-02-02  9:43   ` Jonathan Cameron
2020-02-03 18:31     ` Prashant Malani [this message]
2020-01-30 20:30 ` [PATCH 11/17] ASoC: cros_ec_codec: " Prashant Malani
2020-01-30 20:30   ` [alsa-devel] " Prashant Malani
2020-02-01 11:03   ` Mark Brown
2020-02-01 11:03     ` [alsa-devel] " Mark Brown
2020-02-03 18:42     ` Prashant Malani
2020-02-03 18:42       ` [alsa-devel] " Prashant Malani
2020-01-30 20:30 ` [PATCH 12/17] power: supply: cros: " Prashant Malani
2020-01-30 20:31 ` [PATCH 13/17] pwm: cros-ec: Remove cros_ec_cmd_xfer_status() Prashant Malani
2020-01-30 20:31   ` Prashant Malani
2020-02-03 15:33   ` Enric Balletbo i Serra
2020-02-03 18:26     ` Prashant Malani
2020-02-03 18:39       ` Prashant Malani
2020-01-30 20:31 ` [PATCH 14/17] rtc: cros-ec: Use cros_ec_send_cmd_msg() Prashant Malani
2020-01-30 20:31 ` [PATCH 15/17] media: cros-ec-cec: " Prashant Malani
2020-02-02 22:08   ` kbuild test robot
2020-02-02 22:08     ` kbuild test robot
2020-02-03  5:35   ` kbuild test robot
2020-02-03  5:35     ` kbuild test robot
2020-01-30 20:31 ` [PATCH 16/17] i2c: cros-ec-tunnel: " Prashant Malani
2020-01-30 20:31   ` Prashant Malani
2020-01-30 20:31 ` [PATCH 17/17] platform/chrome: Drop cros_ec_cmd_xfer_status() Prashant Malani
2020-02-03 15:35   ` Enric Balletbo i Serra

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CACeCKacjecNRnQ=YRVZjtuZvZmvd_=wd7MGb22bmWyRm8+-0oA@mail.gmail.com' \
    --to=pmalani@chromium.org \
    --cc=bleung@chromium.org \
    --cc=enric.balletbo@collabora.com \
    --cc=fabien.lahoudere@collabora.com \
    --cc=groeck@chromium.org \
    --cc=gwendal@chromium.org \
    --cc=jic23@kernel.org \
    --cc=knaack.h@gmx.de \
    --cc=lars@metafoo.de \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nvaccaro@chromium.org \
    --cc=pmeerw@pmeerw.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.