Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp1815014pxb; Thu, 16 Sep 2021 16:42:56 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzHLnV88lBn9rfTx31tLfT2tRJjnNUWRVwF7bvgqmxQ8YhoYb/dee8EbHpaz3SxIh/VoKHL X-Received: by 2002:a05:6e02:1305:: with SMTP id g5mr5789335ilr.9.1631835776827; Thu, 16 Sep 2021 16:42:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631835776; cv=none; d=google.com; s=arc-20160816; b=wx1c7oLKNTG/U/4lLzUosN/rIWRiJ+khHTvhU3di+4N3OsfHmnUAXDJakgAyQhMvnP DfPAan92FbD90tEWLbVi6jrVclsmMnpQ8gTiXwm/6l5XcbA6kkXlgEglkFEt+pwRFOdY 9GN7FcIFR547PE4mCFy5pIs8KfYzguXwwNm+CiGtTy+AyAizQI+TuB1Q9i8Ps6ZgPs1f 5IyuwF+UN3lNPzGK+2OSbsmmapAnD5+q+6evl5PBEmaEIzkcChQMNZRwc7mS6tjKUdmR PhAEDO3OLYiHuFNCIQd01k+eRCitoiiU62yqPUgCjhZ+beQeJlo1SfU0oOZbfzigUPKV pM3Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=avmoVLdsBx3RfGpQrAacYXH4BodYXTt2XauYTLI4xvY=; b=vDbeldTHZOPhXRrJfEufrmHfDEx5EXB3HNr+lRehDKs6mxgTIKz8fh0srQaGbvL8Q8 sbTKnnXtJZVn7B70L7lRw5jJwly8Q/x5uZC/pnAhurYcW3LyHISFOF744UDYHByKWH+R 7zaOlQI/fpBae/gsUoINdSVh3bH3ebqRT1NQvxU36bHJfoaDlMvU6d1B+8IZAs2/RDFh kCurNUHL0LFKbNj4ut5KPGuJMSCMfjwTbrWXxVQWSMD4CEMFQuekEVxMaTFB6+U8ygem gvLCayiRHWANfwww5mQ8HjbA2LNWynrLCjpjQKIUVIyrul4HuG/dvBMbFJH4HPQEcKWC qvBQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=oeOO8Jgp; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m82si3352398ioa.74.2021.09.16.16.42.45; Thu, 16 Sep 2021 16:42:56 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=oeOO8Jgp; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244837AbhIPRFj (ORCPT + 99 others); Thu, 16 Sep 2021 13:05:39 -0400 Received: from mail.kernel.org ([198.145.29.99]:34160 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1348208AbhIPRCQ (ORCPT ); Thu, 16 Sep 2021 13:02:16 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 51A3061B00; Thu, 16 Sep 2021 16:33:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1631810005; bh=DPwHQ/O2t7CmzyS/XLygN1/o/YYDUSrXHbgLso137Ik=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=oeOO8JgpkHiy4glg7TuiZNPevuVl8O+qB397x7pdgqgglehKSHIP4uML3VfLFuUdN 0jWnC4pF4ZDZeVYToVs0gI9E/S2WKw0MCQmeaxeasDD4aMQ/gcRiRWZxynSiOFpWBp U/N86+dfQutYD3NmqovwmqsbROM6NGyie+PNbH2s= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Patryk Duda , Benson Leung Subject: [PATCH 5.13 364/380] platform/chrome: cros_ec_proto: Send command again when timeout occurs Date: Thu, 16 Sep 2021 18:02:01 +0200 Message-Id: <20210916155816.436388797@linuxfoundation.org> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20210916155803.966362085@linuxfoundation.org> References: <20210916155803.966362085@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Patryk Duda commit 3abc16af57c9939724df92fcbda296b25cc95168 upstream. Sometimes kernel is trying to probe Fingerprint MCU (FPMCU) when it hasn't initialized SPI yet. This can happen because FPMCU is restarted during system boot and kernel can send message in short window eg. between sysjump to RW and SPI initialization. Cc: # 4.4+ Signed-off-by: Patryk Duda Link: https://lore.kernel.org/r/20210518140758.29318-1-pdk@semihalf.com Signed-off-by: Benson Leung Signed-off-by: Greg Kroah-Hartman --- drivers/platform/chrome/cros_ec_proto.c | 9 +++++++++ 1 file changed, 9 insertions(+) --- a/drivers/platform/chrome/cros_ec_proto.c +++ b/drivers/platform/chrome/cros_ec_proto.c @@ -279,6 +279,15 @@ static int cros_ec_host_command_proto_qu msg->insize = sizeof(struct ec_response_get_protocol_info); ret = send_command(ec_dev, msg); + /* + * Send command once again when timeout occurred. + * Fingerprint MCU (FPMCU) is restarted during system boot which + * introduces small window in which FPMCU won't respond for any + * messages sent by kernel. There is no need to wait before next + * attempt because we waited at least EC_MSG_DEADLINE_MS. + */ + if (ret == -ETIMEDOUT) + ret = send_command(ec_dev, msg); if (ret < 0) { dev_dbg(ec_dev->dev,