Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp27431ybl; Tue, 7 Jan 2020 13:24:56 -0800 (PST) X-Google-Smtp-Source: APXvYqxX+Z69LdNtKZB5xDWbz2yg9SD/l315w5r4HtLFk9jXYrU07l8OY2i4q1zfTrZZuCPg0GBs X-Received: by 2002:a9d:518b:: with SMTP id y11mr1600605otg.349.1578432295917; Tue, 07 Jan 2020 13:24:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1578432295; cv=none; d=google.com; s=arc-20160816; b=g+sK23uZi1C/9jooZmMAPUu49P8Sbvibn/BnS5RNE2BD18zl9oQ/mZAJTbFMY7zbAt eCcZFV1YOilXUEFqAIdWgDkPkTMZuoIykYSkHSXZIXEbCkM/v/ly+KlqIJ5amEy5zKek +zsRwNpDcTkXSWluI3NbnMwHgz2ZuQLP5sKHPRwx6V8vd2ZeGxZgpsFQbP2qYaJJocjf wQYL6AKNanbfQQORiOG0RAYUen3TXl2kH3ovElgpPhklltxZWyB4DZnEWYs4mX+B4qt1 jc0R0L2sqIc3zqf/oaa7P4tFZDjBrC4QQAxeeraPiiyigwj2gZEbu2VEDCYJLviscGXZ R3+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=WHKK2QKsKkA3JYWRdHe1wmp3ITMdHNAX4aznYtgbILk=; b=kMifYxNp7ZlKhd7clxxqiPRwzw9XbSuvzTMbXXIr/JfZprJbIu5k/bJ89/Zuf4NGAb eSNJpV3XAR4xH97msh+mqlPVi767UOacUtClQs3nqA02n+poXGM9cuZp7SLPQ+jrA7CG Oo4z9JH38DbLfBsmxz7QDkwVzi/3yDg1DIA5JLLvUimPZUyfKtHJce6Fs/4osbsC5N9P keCP04wL7A8QZCdEK6zJU/xTuZo5RFv135i5oV+u6v2QCSzUC+l4jHkhuf89xPgLEu8F 9e2eOmaynJF0VifZ5JcLYTM7EiKV2UCRuRhI4VEFNmWglzQvKD7/c4bIDTPClIxne2az 5Tew== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=MHlwfEJV; 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 u8si563419otq.262.2020.01.07.13.24.35; Tue, 07 Jan 2020 13:24:55 -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=pass header.i=@kernel.org header.s=default header.b=MHlwfEJV; 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 S1728593AbgAGVBe (ORCPT + 99 others); Tue, 7 Jan 2020 16:01:34 -0500 Received: from mail.kernel.org ([198.145.29.99]:38788 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727671AbgAGVBa (ORCPT ); Tue, 7 Jan 2020 16:01:30 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id DB42720678; Tue, 7 Jan 2020 21:01:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1578430889; bh=zTcBiJ776ZmoyF0xxIU0eFvQt5XSeW4yAov5XItHXKo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MHlwfEJVpgyX3izKRq6gMPaRlAkkweON8mqMQz/Lyzb4c86AkwntEHGbDdy+uEWX9 U+5T5/ukGPzRvyC7rUtxyNipiExKCePyG8fppm5OKmnbM7G/baN2Den7s0YSFAww2b udYf4ftuIqtAXaGxCoRgGifNVdFH+ramq+zO7n3w= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Kai-Heng Feng , Jiri Kosina Subject: [PATCH 5.4 139/191] HID: i2c-hid: Reset ALPS touchpads on resume Date: Tue, 7 Jan 2020 21:54:19 +0100 Message-Id: <20200107205340.416115795@linuxfoundation.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200107205332.984228665@linuxfoundation.org> References: <20200107205332.984228665@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Kai-Heng Feng commit fd70466d37bf3fe0118d18c56ddde85b428f86cf upstream. Commit 52cf93e63ee6 ("HID: i2c-hid: Don't reset device upon system resume") fixes many touchpads and touchscreens, however ALPS touchpads start to trigger IRQ storm after system resume. Since it's total silence from ALPS, let's bring the old behavior back to ALPS touchpads. Fixes: 52cf93e63ee6 ("HID: i2c-hid: Don't reset device upon system resume") Signed-off-by: Kai-Heng Feng Signed-off-by: Jiri Kosina Signed-off-by: Greg Kroah-Hartman --- drivers/hid/i2c-hid/i2c-hid-core.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) --- a/drivers/hid/i2c-hid/i2c-hid-core.c +++ b/drivers/hid/i2c-hid/i2c-hid-core.c @@ -48,6 +48,7 @@ #define I2C_HID_QUIRK_SET_PWR_WAKEUP_DEV BIT(0) #define I2C_HID_QUIRK_NO_IRQ_AFTER_RESET BIT(1) #define I2C_HID_QUIRK_BOGUS_IRQ BIT(4) +#define I2C_HID_QUIRK_RESET_ON_RESUME BIT(5) /* flags */ #define I2C_HID_STARTED 0 @@ -174,6 +175,8 @@ static const struct i2c_hid_quirks { I2C_HID_QUIRK_NO_IRQ_AFTER_RESET }, { USB_VENDOR_ID_ELAN, HID_ANY_ID, I2C_HID_QUIRK_BOGUS_IRQ }, + { USB_VENDOR_ID_ALPS_JP, HID_ANY_ID, + I2C_HID_QUIRK_RESET_ON_RESUME }, { 0, 0 } }; @@ -1214,8 +1217,15 @@ static int i2c_hid_resume(struct device * solves "incomplete reports" on Raydium devices 2386:3118 and * 2386:4B33 and fixes various SIS touchscreens no longer sending * data after a suspend/resume. + * + * However some ALPS touchpads generate IRQ storm without reset, so + * let's still reset them here. */ - ret = i2c_hid_set_power(client, I2C_HID_PWR_ON); + if (ihid->quirks & I2C_HID_QUIRK_RESET_ON_RESUME) + ret = i2c_hid_hwreset(client); + else + ret = i2c_hid_set_power(client, I2C_HID_PWR_ON); + if (ret) return ret;