Received: by 10.192.165.156 with SMTP id m28csp1170429imm; Wed, 11 Apr 2018 13:49:25 -0700 (PDT) X-Google-Smtp-Source: AIpwx4+WYUwJdHM6hYSp7bUuQn+AU+kg408heJJ/1DcQXofSD1g0O//hTSoiWzHZJS1bOj++ORBp X-Received: by 10.99.95.144 with SMTP id t138mr4426801pgb.94.1523479765708; Wed, 11 Apr 2018 13:49:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523479765; cv=none; d=google.com; s=arc-20160816; b=xu+hpsrhRX3jW4e6RqyWP0zHfmcMycl9tlI8vbSJxxMR1vO1sBQ2E3ADZWald6VMF1 Ww3DFFsgr8ILTt0CfinpKC68iSEnbCb2IQGMkkdts2EpEFRKCmBKLMdUBAeVFX9no8SR l9MTvPJJgFw0D9iTXGdPRRLVO0zw19dfcrcJlSiKfUaUBxWM3cr+v/q2Hfoc5y9M5LZR JmvtvTdTx9UJj60NTJ0oPsmBJqhZzVXPXlDJzb+f1aKsyp7WW0Jd4BLb4HDstX7pPGqR +oKvKbNdmNgsOKYm0yG1vMw9gGcwAK50Ipy6Fr5lho+BVCJiykoQQtYWJnR3pDSTdvbf cTxw== 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=eGITMebKrssREwwCzpwGhivbVgVYPyE0DIZHDMqvpJo=; b=atkdaw3mq3EckizmH9gIDUVLkjfLZw/XmcG79vMIuGjyV6V5JDZMQWpvCsRIzUzvZT qPe9cPqyeOWB7ghRvmn7ogDL724NjmytR9IytBSnO3kT+fbX45tzt1YyvucWhJEoBZbm kG1SHFAm4Q+dtAoQBtDMX6pB+bzXn6PrxoY5oRM8qsDS/T7u4OsE195CBjJ4kEGZpGur 1S+fN/drnAiJtnTyrp7kd9E90oObm07dTvb23nxnjQPRRZ0uSgf149AOei9eLXK/MdCc DhlUAcYcu37AE1sFp20PdC4Ozb7TV0rNGUbWtyMjZD0dPTbqSiubk41FncTHhRMKpOPc d6Bg== 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 85si1397953pfz.271.2018.04.11.13.48.49; Wed, 11 Apr 2018 13:49:25 -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 S1755790AbeDKSqv (ORCPT + 99 others); Wed, 11 Apr 2018 14:46:51 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:59056 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755740AbeDKSqr (ORCPT ); Wed, 11 Apr 2018 14:46:47 -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 D1228D91; Wed, 11 Apr 2018 18:46:46 +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.4 077/190] Input: elan_i2c - clear INT before resetting controller Date: Wed, 11 Apr 2018 20:35:23 +0200 Message-Id: <20180411183554.982349567@linuxfoundation.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180411183550.114495991@linuxfoundation.org> References: <20180411183550.114495991@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.4-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);