* [PATCH v2] platform/chrome: Use proper protocol transfer function
@ 2016-11-28 22:19 Brian Norris
2016-11-29 12:20 ` Javier Martinez Canillas
0 siblings, 1 reply; 2+ messages in thread
From: Brian Norris @ 2016-11-28 22:19 UTC (permalink / raw)
To: Olof Johansson, Benson Leung
Cc: Lee Jones, linux-kernel, Doug Anderson, Brian Norris,
Javier Martinez Canillas, Shawn Nematbakhsh, Gwendal Grignou,
Enric Balletbo, Tomeu Vizoso, Brian Norris
From: Shawn Nematbakhsh <shawnn@chromium.org>
pkt_xfer should be used for protocol v3, and cmd_xfer otherwise. We had
one instance of these functions correct, but not the second, fall-back
case. We use the fall-back only when the first command returns an
IN_PROGRESS status, which is only used on some EC firmwares where we
don't want to constantly poll the bus, but instead back off and
sleep/retry for a little while.
Fixes: 2c7589af3c4d ("mfd: cros_ec: add proto v3 skeleton")
Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org>
Signed-off-by: Brian Norris <briannorris@chromium.org>
---
Hi Olof / Benson,
This one's been sitting around a while.
v2:
* Add Benson in 'To:'
* make subject prefix more obvious
drivers/platform/chrome/cros_ec_proto.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/platform/chrome/cros_ec_proto.c b/drivers/platform/chrome/cros_ec_proto.c
index 04053fe1e980..cfa3e850c49f 100644
--- a/drivers/platform/chrome/cros_ec_proto.c
+++ b/drivers/platform/chrome/cros_ec_proto.c
@@ -60,12 +60,14 @@ static int send_command(struct cros_ec_device *ec_dev,
struct cros_ec_command *msg)
{
int ret;
+ int (*xfer_fxn)(struct cros_ec_device *ec, struct cros_ec_command *msg);
if (ec_dev->proto_version > 2)
- ret = ec_dev->pkt_xfer(ec_dev, msg);
+ xfer_fxn = ec_dev->pkt_xfer;
else
- ret = ec_dev->cmd_xfer(ec_dev, msg);
+ xfer_fxn = ec_dev->cmd_xfer;
+ ret = (*xfer_fxn)(ec_dev, msg);
if (msg->result == EC_RES_IN_PROGRESS) {
int i;
struct cros_ec_command *status_msg;
@@ -88,7 +90,7 @@ static int send_command(struct cros_ec_device *ec_dev,
for (i = 0; i < EC_COMMAND_RETRIES; i++) {
usleep_range(10000, 11000);
- ret = ec_dev->cmd_xfer(ec_dev, status_msg);
+ ret = (*xfer_fxn)(ec_dev, status_msg);
if (ret < 0)
break;
--
2.8.0.rc3.226.g39d4020
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH v2] platform/chrome: Use proper protocol transfer function
2016-11-28 22:19 [PATCH v2] platform/chrome: Use proper protocol transfer function Brian Norris
@ 2016-11-29 12:20 ` Javier Martinez Canillas
0 siblings, 0 replies; 2+ messages in thread
From: Javier Martinez Canillas @ 2016-11-29 12:20 UTC (permalink / raw)
To: Brian Norris, Olof Johansson, Benson Leung
Cc: Lee Jones, linux-kernel, Doug Anderson, Brian Norris,
Shawn Nematbakhsh, Gwendal Grignou, Enric Balletbo, Tomeu Vizoso
Hello Brian,
On 11/28/2016 07:19 PM, Brian Norris wrote:
> From: Shawn Nematbakhsh <shawnn@chromium.org>
>
> pkt_xfer should be used for protocol v3, and cmd_xfer otherwise. We had
> one instance of these functions correct, but not the second, fall-back
> case. We use the fall-back only when the first command returns an
> IN_PROGRESS status, which is only used on some EC firmwares where we
> don't want to constantly poll the bus, but instead back off and
> sleep/retry for a little while.
>
That's correct, sorry for missing this when pushing the patch to mainline.
Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com>
--
Javier Martinez Canillas
Open Source Group
Samsung Research America
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-11-29 12:21 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-28 22:19 [PATCH v2] platform/chrome: Use proper protocol transfer function Brian Norris
2016-11-29 12:20 ` Javier Martinez Canillas
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).