Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4363205pxj; Tue, 8 Jun 2021 12:27:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJywYRlUzjxPbzfKILfGo7xtoUkQ+uSpiM9XAxBno0Bp0kg9F/vV8zZsmg5rSbB0NFMceA4k X-Received: by 2002:a05:6402:11cb:: with SMTP id j11mr9946115edw.24.1623180431120; Tue, 08 Jun 2021 12:27:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623180431; cv=none; d=google.com; s=arc-20160816; b=Wahj6zw+6FloRXeULelHUhDnxz328RRzhz2Pap+FYB1So0wSnXH9qYz6Op5UhGKqLG f4LKRFkB/r/kVO1Gz2Hm3MDbJUuYpkKoWmXyKhMusO7x313Lgv+mSY+g6uYv6hy5QBDg W9Bm2R8HUuemVatAO0OOEzjMyjBr2v8fuORZR9vLzFr1gM7ppmGhunEv5pe6zA+dAHeE w4jFtH1px0XbduwXXhzLvdWfVY9gJwyofbtglX5sGmwr7A7cJEvyz5LYo1dwJYXWMfgE nd3tSPiwGsARnJInuMYCcBK9Z1Pz5AVPSJVwjVZQh6WuZDRZOOPttD3ngLFmcxHjSWPd g9Xw== 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=VZLgGqGlKm0WA9qK/acXhpAU1odhMf1fvZMBeYfuUlo=; b=d1TaDyYY0vD6t55saBlZB2nVx1WcovhzAyhU/Ivhg/BpP593nrdWRuNMKzDDNUfRIW FH6hvdNhmxFSR7yNyVdK2sUD1WY10r1LByNvBP4gX5KFSy9vU0/yOxDigrB1ix3azDmK niNso7Lbo2UIYFr7qOQvI8FO5oChHJ5qbtpOAuaC7AGXl83kdvWgHmrOosn8jWxHwrmX yynGe1+vVTofN4Hh0U+hpSjoK7flaamoLIAjsU+JE2Tg5V57pL46aZb26nrga4pvDMTO XBGnJ2sBz3DYZnOiCKjaCOw3Von/4H2dPHDLAqAKB3sFqdgiFM+1RuunItZcg7E04dmd iI7Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=iO20nJIK; 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 l14si440327eji.721.2021.06.08.12.26.47; Tue, 08 Jun 2021 12:27:11 -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=iO20nJIK; 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 S239718AbhFHTZE (ORCPT + 99 others); Tue, 8 Jun 2021 15:25:04 -0400 Received: from mail.kernel.org ([198.145.29.99]:58010 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237868AbhFHTNA (ORCPT ); Tue, 8 Jun 2021 15:13:00 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 3176761966; Tue, 8 Jun 2021 18:49:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1623178181; bh=NOZbMXeutHh7NJDxx1KE3YzW/s89xWBSFAQ3/YlD3XE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=iO20nJIKf0Q+nCLVFwpzzkY6ZOQKnrTwHdRFb/F1LXAg++oFUiE5aCaqNn8htzgRa FpzMareoAaFfT0ot4taZZy0FqYc7SICG6E8grwaK+hPSzbgsEluKb1xRRuGkJCwVlc h//3khFCUwujHehzLZOTrON9AMGrRrfYPmzf/x9E= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Johnny Chuang , Harry Cutts , Douglas Anderson , Benjamin Tissoires Subject: [PATCH 5.12 107/161] HID: i2c-hid: Skip ELAN power-on command after reset Date: Tue, 8 Jun 2021 20:27:17 +0200 Message-Id: <20210608175949.086712403@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210608175945.476074951@linuxfoundation.org> References: <20210608175945.476074951@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: Johnny Chuang commit ca66a6770bd9d6d99e469debd1c7363ac455daf9 upstream. For ELAN touchscreen, we found our boot code of IC was not flexible enough to receive and handle this command. Once the FW main code of our controller is crashed for some reason, the controller could not be enumerated successfully to be recognized by the system host. therefore, it lost touch functionality. Add quirk for skip send power-on command after reset. It will impact to ELAN touchscreen and touchpad on HID over I2C projects. Fixes: 43b7029f475e ("HID: i2c-hid: Send power-on command after reset"). Cc: stable@vger.kernel.org Signed-off-by: Johnny Chuang Reviewed-by: Harry Cutts Reviewed-by: Douglas Anderson Tested-by: Douglas Anderson Signed-off-by: Benjamin Tissoires Signed-off-by: Greg Kroah-Hartman --- drivers/hid/i2c-hid/i2c-hid-core.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) --- a/drivers/hid/i2c-hid/i2c-hid-core.c +++ b/drivers/hid/i2c-hid/i2c-hid-core.c @@ -45,6 +45,7 @@ #define I2C_HID_QUIRK_BOGUS_IRQ BIT(4) #define I2C_HID_QUIRK_RESET_ON_RESUME BIT(5) #define I2C_HID_QUIRK_BAD_INPUT_SIZE BIT(6) +#define I2C_HID_QUIRK_NO_WAKEUP_AFTER_RESET BIT(7) /* flags */ @@ -178,6 +179,11 @@ static const struct i2c_hid_quirks { I2C_HID_QUIRK_RESET_ON_RESUME }, { USB_VENDOR_ID_ITE, I2C_DEVICE_ID_ITE_LENOVO_LEGION_Y720, I2C_HID_QUIRK_BAD_INPUT_SIZE }, + /* + * Sending the wakeup after reset actually break ELAN touchscreen controller + */ + { USB_VENDOR_ID_ELAN, HID_ANY_ID, + I2C_HID_QUIRK_NO_WAKEUP_AFTER_RESET }, { 0, 0 } }; @@ -461,7 +467,8 @@ static int i2c_hid_hwreset(struct i2c_cl } /* At least some SIS devices need this after reset */ - ret = i2c_hid_set_power(client, I2C_HID_PWR_ON); + if (!(ihid->quirks & I2C_HID_QUIRK_NO_WAKEUP_AFTER_RESET)) + ret = i2c_hid_set_power(client, I2C_HID_PWR_ON); out_unlock: mutex_unlock(&ihid->reset_lock);