Received: by 10.223.164.202 with SMTP id h10csp691782wrb; Tue, 14 Nov 2017 08:07:39 -0800 (PST) X-Google-Smtp-Source: AGs4zMaJMBZCj0n7DRORGwlW4jtXy0O9nlVKF6O+Ecw5omuXfPlzpcK72VtnS814GFm4P+3lHR4Y X-Received: by 10.159.242.132 with SMTP id u4mr12916815plr.296.1510675659601; Tue, 14 Nov 2017 08:07:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1510675659; cv=none; d=google.com; s=arc-20160816; b=TECZWJX+lqyEQ3rASBNGTuiHP2O0Ui+zy0KGyUyuYF50Sv6MP94WoDSDMm+84WGN3C bDH9oQAiEQ2rIKBoA1I+DS8A0ICObv4n4xoaoA5gf1vI/kif+1y8MVPS9Xe1Cbsm4dS5 qRf4QwP7j0E/Ti30+thusxKoKV8kWj5gunuAgm7Bvld8FGFt6YlS46Q0lqq4OlEdO50b 6peJUNFLMHgtLUMA9FMkp/q021OBP2YW16mI+X3zelx/BJtClvlexREqkVqFj7W93PZO c4Aobl0IygWy0eZlzakA8qW4foUl96k8P3L9OENM0pbSFLoT2yZQHW07AcfdDJLNxQHo OiEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature:dkim-signature :arc-authentication-results; bh=TATklirDejY9WgjXo+itMKDAIKy86J+IhW3stSdtebQ=; b=Re7O47RUp8DqGfp1haPUE8btqi6m8MSkqScoAlrJXHo9XsQ6jRVE+1Y+1mo7F7pVvB RPfzyBX8kpDvC4DlBJ9Z2xMbIQJuiue6hITWSxjFxs4v9YDF+A+HWLAEVfiVDeU7U0Lr yO4aYMw9AyBj3p1yzJQhne/ICQ+ArmSIfugCoNxmdbKWC5n3R4LX7MyZmI6yYLDGSO80 VLJAAf544XxEeb1Ci/GrT1Q2oCkZERSK2xMHQhtOS66i2tXI5+tfrOctiT8dvvbLi6ao Y4YOuX4n+62EOIWSLvFIzYa4dgULzXLdX5bepohP1cE3tdghfZ5g6PEe55JzW2gbXA/8 u/ig== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@google.com header.s=20161025 header.b=Ftpm72wS; dkim=fail header.i=@chromium.org header.s=google header.b=EecUyRIr; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y6si15536070pgp.587.2017.11.14.08.07.27; Tue, 14 Nov 2017 08:07:39 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@google.com header.s=20161025 header.b=Ftpm72wS; dkim=fail header.i=@chromium.org header.s=google header.b=EecUyRIr; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754880AbdKNP7o (ORCPT + 88 others); Tue, 14 Nov 2017 10:59:44 -0500 Received: from mail-wm0-f67.google.com ([74.125.82.67]:55499 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753323AbdKNP7g (ORCPT ); Tue, 14 Nov 2017 10:59:36 -0500 Received: by mail-wm0-f67.google.com with SMTP id 9so17438563wme.4 for ; Tue, 14 Nov 2017 07:59:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=TATklirDejY9WgjXo+itMKDAIKy86J+IhW3stSdtebQ=; b=Ftpm72wSV1XAz5Mx4nrmApuGLZTU3HqSFaugcAf5KkEiuiXPLr1cl69Kd3Moz8wnT3 D3AmAYsAwPcf6XiUKCJst18SlJ/3JGY+WNKSYSSJanZcW4m/ZdvkN1spGBaUDNYRNNs/ jMYe5BnDXuZ2lh8epQYaABI6H1IenB+iYA2U65qTBB4WOrnFRiqHoUIF6eIFna+ijkDn T+bsfw34CytUqpMix+CvRlzudrvdNKr6e4zSQt9Yb0lFsBKWjnrTIfhYs2szIyfr5BhE /s1UosmC9GeAF/o7tngrJ5zg+XoD50X0Ia2YX+lMYp/litB4Xe/KqjWtgtuLYpo//6HN kbMw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=TATklirDejY9WgjXo+itMKDAIKy86J+IhW3stSdtebQ=; b=EecUyRIrzeEksSsBCfZveBzX/PmhJGgWOJWS7aUVbv30044ZTNepoXe8OmEQfWr2me IF6eP41yiUSrekXDsG6cCSuOfP5zbTsw9j/AvZNZYHxBWQZ6YZG/vcKOsHQqmAMG5E5a GJNFq67PXk8+bbZBQcqte6poZdEYsPTg9zwkM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=TATklirDejY9WgjXo+itMKDAIKy86J+IhW3stSdtebQ=; b=KG3zMcMVXCe6PMltXAXabMNmAqEBrbBPNkMITJ/Fh1wJR75Q91DbXlp+BHal6jC6B9 LJpd3C7rC7fEK7mLOtPeNJU0U2rK3obcfAPxAHsBJ6dDkAf7ZQ+/7d8aq+mLo3odSY75 nubVeLQJFRQWJ5w9X4k5JDXxsdx6/xZxv35NbnSUqt7oX4AfTKcCAm45/nwH+w3OqmpP MZGDhniwb9XeIsbJt/DB8lV3iDBx8NTtm9gc+h3DDrW68c0n3/18zbSnf+JIc1ik/614 DiWJAu3Kz5OJBeR7j6Xkni0Y6E2wnW2NWTlAlw4YN+P5D7Fha+t/JHbXl8e4XuAJNurf d57w== X-Gm-Message-State: AJaThX4U3hBDyX42RmRRNJfuBMaWkwzigETU6k4m60y11a6+yeow6XDp LBL7fxYI/DkZqFV73GVbHZyfXUgO/LHrm+A3lgiKpw== X-Received: by 10.28.230.140 with SMTP id e12mr8506166wmi.118.1510675174342; Tue, 14 Nov 2017 07:59:34 -0800 (PST) MIME-Version: 1.0 Received: by 10.28.127.150 with HTTP; Tue, 14 Nov 2017 07:59:33 -0800 (PST) In-Reply-To: <4cf2fa5b-f909-1ab1-f743-e1cb9a66c604@nvidia.com> References: <20170908205011.77986-1-briannorris@chromium.org> <02aa65e7-e967-055b-2af3-2e9b6ef77935@nvidia.com> <20170919171401.GA10968@google.com> <20170920061317.GB13616@google.com> <4cf2fa5b-f909-1ab1-f743-e1cb9a66c604@nvidia.com> From: Shawn N Date: Tue, 14 Nov 2017 07:59:33 -0800 X-Google-Sender-Auth: xEv6Ik42QE-tLLZ1JLkIUT3sWBs Message-ID: Subject: Re: [PATCH v3] platform/chrome: Use proper protocol transfer function To: Jon Hunter Cc: Olof Johansson , Benson Leung , Lee Jones , linux-kernel@vger.kernel.org, Doug Anderson , Brian Norris , Brian Norris , Gwendal Grignou , Enric Balletbo , Tomeu Vizoso , "linux-tegra@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Jon, On Tue, Nov 14, 2017 at 7:56 AM, Jon Hunter wrote: > > Hi Shawn, > > On 26/09/17 16:40, Jon Hunter wrote: > > On 26/09/17 00:15, Shawn N wrote: > > ... > > >> From: Shawn Nematbakhsh > >> Date: Mon, 25 Sep 2017 14:32:38 -0700 > >> Subject: [PATCH] mfd: cros ec: spi: Fix "in progress" error signaling > >> > >> For host commands that take a long time to process, cros ec can return > >> early by signaling a EC_RES_IN_PROGRESS result. The host must then poll > >> status with EC_CMD_GET_COMMS_STATUS until completion of the command. > >> > >> None of the above applies when data link errors are encountered. When > >> errors such as EC_SPI_PAST_END are encountered during command > >> transmission, it usually means the command was not received by the EC. > >> Treating such errors as if they were 'EC_RES_IN_PROGRESS' results is > >> almost always the wrong decision, and can result in host commands > >> silently being lost. > >> > >> Signed-off-by: Shawn Nematbakhsh > >> --- > >> drivers/mfd/cros_ec_spi.c | 26 ++++++++++++-------------- > >> 1 file changed, 12 insertions(+), 14 deletions(-) > >> > >> diff --git a/drivers/mfd/cros_ec_spi.c b/drivers/mfd/cros_ec_spi.c > >> index c9714072e224..d33e3847e11e 100644 > >> --- a/drivers/mfd/cros_ec_spi.c > >> +++ b/drivers/mfd/cros_ec_spi.c > >> @@ -377,6 +377,7 @@ static int cros_ec_pkt_xfer_spi(struct > >> cros_ec_device *ec_dev, > >> u8 *ptr; > >> u8 *rx_buf; > >> u8 sum; > >> + u8 rx_byte; > >> int ret = 0, final_ret; > >> > >> len = cros_ec_prepare_tx(ec_dev, ec_msg); > >> @@ -421,25 +422,22 @@ static int cros_ec_pkt_xfer_spi(struct > >> cros_ec_device *ec_dev, > >> if (!ret) { > >> /* Verify that EC can process command */ > >> for (i = 0; i < len; i++) { > >> - switch (rx_buf[i]) { > >> - case EC_SPI_PAST_END: > >> - case EC_SPI_RX_BAD_DATA: > >> - case EC_SPI_NOT_READY: > >> - ret = -EAGAIN; > >> - ec_msg->result = EC_RES_IN_PROGRESS; > >> - default: > >> + rx_byte = rx_buf[i]; > >> + if (rx_byte == EC_SPI_PAST_END || > >> + rx_byte == EC_SPI_RX_BAD_DATA || > >> + rx_byte == EC_SPI_NOT_READY) { > >> + ret = -EREMOTEIO; > >> break; > >> } > >> - if (ret) > >> - break; > >> } > >> - if (!ret) > >> - ret = cros_ec_spi_receive_packet(ec_dev, > >> - ec_msg->insize + sizeof(*response)); > >> - } else { > >> - dev_err(ec_dev->dev, "spi transfer failed: %d\n", ret); > >> } > >> > >> + if (!ret) > >> + ret = cros_ec_spi_receive_packet(ec_dev, > >> + ec_msg->insize + sizeof(*response)); > >> + else > >> + dev_err(ec_dev->dev, "spi transfer failed: %d\n", ret); > >> + > >> final_ret = terminate_request(ec_dev); > >> > >> spi_bus_unlock(ec_spi->spi->master); > >> > > > > Thanks! Works for me ... > > > > Tested-by: Jon Hunter > > I can't find the formal patch you sent out for the above, but I have not > seen it picked up yet. I am guess that Lee did not pick it up because > there was still an open question. Anyhow we may want to circle back with > Lee on this so that this does get picked up. The formal patch is here: https://lkml.org/lkml/2017/9/27/707 I will circle back to ensure that it gets picked up. > > Cheers > Jon > > -- > nvpublic From 1584058095280098296@xxx Tue Nov 14 16:05:21 +0000 2017 X-GM-THRID: 1578006392712496529 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread