Received: by 10.192.165.156 with SMTP id m28csp1126806imm; Wed, 11 Apr 2018 12:57:52 -0700 (PDT) X-Google-Smtp-Source: AIpwx48t/5Y+diAT1Yrr+ttdtoFT/mrAt8bIUgYE/ldTlXWERTApNMbLm+775G0HUmph5dITXSWd X-Received: by 2002:a17:902:be18:: with SMTP id r24-v6mr6511657pls.275.1523476672932; Wed, 11 Apr 2018 12:57:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523476672; cv=none; d=google.com; s=arc-20160816; b=tJAbinW5HYLjz0GScq6FKf3tb6b2wTDpY8XxAGUuTsTkRhRDJefg7a+zf4rldUp7VU mJoDV81ks7qEA7heeR+sioZnfP8EZah1AupPde/EG+j4zlnHurYeyGlF2GViyAv3blOR 00BO+gg6x4YOFxMGp9L13kA+aQW78bcnmjrA2IguLGicqgZOJ+ZzOyg+RIXTrQ35u5yJ OZ/AtZcIfTVp4EyWxHFx9gWcuBKek91Gh0lKT8QVr7L/TtPtatkTBr01YOtFQqw6lecp mIa6ZxUZmJfRSK0oEISPzWf728Z5k/JH+ddTWPvOUnu96O4jgJvOvd5pZFBl8if8xqkq Od1A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=W1Sp1ODPve393P2KshySDTeKJBY+YwaR37oh2QjNMD4=; b=ty99BBJaQ+yPr2XHlnfBxgeUdhzBNdc1h87tt13aDlnYa63D4NgD0GGMWqD4VvZEAW +d76o8OlhEu9+GIyir4qgzzF9K/cqKMVBs87t9c7axt/jgrDodM1BGlkIeWaMiUB7ISW xbalYSsYSGsxXvi+x6uy00U2h7GMczX045MfRrJU7S42On3HEmfkVfsGiMW5YAVf36PS saD18OcGEc7DMmpLCGsFQFMSHnNr46WJr6P6uKLpRZD1isH8uTUlrrUNmePXnD99IoCj EdkUbySZpyCns3dBrS+Md+n8j2ZUs3pVvxREFKOBot6y7AL8bXpxsZWmOLq53YQdEGpd 5hiw== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n3-v6si1742457plb.147.2018.04.11.12.57.15; Wed, 11 Apr 2018 12:57:52 -0700 (PDT) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933099AbeDKTyi (ORCPT + 99 others); Wed, 11 Apr 2018 15:54:38 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:36302 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756412AbeDKS51 (ORCPT ); Wed, 11 Apr 2018 14:57:27 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id C0A12DAB; Wed, 11 Apr 2018 18:57:26 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, KT Liao , Dmitry Torokhov , Sasha Levin Subject: [PATCH 4.9 111/310] Input: elan_i2c - clear INT before resetting controller Date: Wed, 11 Apr 2018 20:34:10 +0200 Message-Id: <20180411183626.969539634@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180411183622.305902791@linuxfoundation.org> References: <20180411183622.305902791@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 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 4.9-stable review patch. If anyone has any objections, please let me know. ------------------ From: KT Liao [ Upstream commit 4b3c7dbbfff0673e8a89575414b864d8b001d3bb ] Some old touchpad FWs need to have interrupt cleared before issuing reset command after updating firmware. We clear interrupt by attempting to read full report from the controller, and discarding any data read. Signed-off-by: KT Liao Signed-off-by: Dmitry Torokhov Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/input/mouse/elan_i2c_i2c.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) --- a/drivers/input/mouse/elan_i2c_i2c.c +++ b/drivers/input/mouse/elan_i2c_i2c.c @@ -557,7 +557,14 @@ static int elan_i2c_finish_fw_update(str long ret; int error; int len; - u8 buffer[ETP_I2C_INF_LENGTH]; + u8 buffer[ETP_I2C_REPORT_LEN]; + + len = i2c_master_recv(client, buffer, ETP_I2C_REPORT_LEN); + if (len != ETP_I2C_REPORT_LEN) { + error = len < 0 ? len : -EIO; + dev_warn(dev, "failed to read I2C data after FW WDT reset: %d (%d)\n", + error, len); + } reinit_completion(completion); enable_irq(client->irq);