Received: by 2002:a05:6a10:17d3:0:0:0:0 with SMTP id hz19csp2971742pxb; Tue, 13 Apr 2021 15:11:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy3fF275Nyhx+UC6gc8fwQWCXklDujtddXw6rFV42ODHyNE0XfNjQ3huAyops0br14J8ukD X-Received: by 2002:a17:902:d306:b029:ea:bb6c:3c99 with SMTP id b6-20020a170902d306b02900eabb6c3c99mr20392915plc.9.1618351866931; Tue, 13 Apr 2021 15:11:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1618351866; cv=none; d=google.com; s=arc-20160816; b=qzZH7GYLPeZK9wKvWWPQm1st2CtRi+BSHi+27MzccVmAo4+yDfCHmG+pOjlhDW7Avu XkObk96EZG1sYWpxcURhy2Ll/+IqUF0A6knUstwBpcxap6kjHMssviO1b0mDdFnXfw6c czl80ePXThsjGtAAPYrdxGvDQabJmF3jr6jebp0lwY8VnqRb9sV0UGb+ZT3WJ22srdoG lLyA7g/LcM/NYLGyBsaQw1mnoBhSDaGgZrOPS3aU15mplznTXHyPVAagw9o774wXphzU SljeN8kpqi6eBWOIvSPehSJpRLeJO5iM33UhZq9TNxVv2vwpx49xDXe16s6cBF0jYS8j gydQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=HJEhIE4vihT2Owsc6wUtrNP/XIiOpOQ3etGCIsAaU9c=; b=r31aCguHYULSbbbO3ru69Hae095B48oLKXtIy4R6UM9JGZPMUewPkNeUeyDT2tTdLs SP1f8TUfSwDlt9iUIr7/g0DiiL/EWOf7BjX+l0+y+0jHu4fkH1PJedPB+iH6BWqICa4i WCycsJDltRA+3NhZuzW6JarwrxIwCkjHA8DIeV7JxJhqK07w1n4V+KQqNSVKf39fb/7p jN4a5gc1Q/CfRkTgfN5mmVaFKY0pHhbvTaZQ9c9QghiHrFLqlvWmWsOatRVl+bBDrmWW 4qTnVWXIt/xSAe8jijHBlPLjwfMWD+b/hGxtsTFqbUU3zWS2pQWB5LDBYj4U5rpjpdjp +bBQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=AckIjkwx; 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=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y5si5089846pjp.126.2021.04.13.15.10.53; Tue, 13 Apr 2021 15:11:06 -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=@chromium.org header.s=google header.b=AckIjkwx; 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=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347190AbhDMRa4 (ORCPT + 99 others); Tue, 13 Apr 2021 13:30:56 -0400 Received: from mail-vs1-f46.google.com ([209.85.217.46]:40558 "EHLO mail-vs1-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1347186AbhDMRaz (ORCPT ); Tue, 13 Apr 2021 13:30:55 -0400 Received: by mail-vs1-f46.google.com with SMTP id b18so3743976vso.7 for ; Tue, 13 Apr 2021 10:30:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=HJEhIE4vihT2Owsc6wUtrNP/XIiOpOQ3etGCIsAaU9c=; b=AckIjkwx4FEDkORJKZgpOkQWycL4WE85rLbuKXcaLTLjjLjVs3YT20WyqdEnDarpey +M/Hd8oRNX1EZ67bpQhd/7I4ETJXaQ+an4BsfZujfJPilai/yhAJKqZ7OQMM2z459kFU prCwm4q71osfsJc63hGEhKVwWa8ywOeLGbvok= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=HJEhIE4vihT2Owsc6wUtrNP/XIiOpOQ3etGCIsAaU9c=; b=Zi/6HPHLBOlZH8kjVk+z6zVWfMDaTAuZNgNY6dXuMNRnX85FFlLOi5VQArkSmN+UDw 7Pr7Trtz6WAIiOCTnk451DjwEduO2mrDEvnBmWw9oNjgCsowVAtm9HOz1UWw0FXwniWp 9Iu9KTwPjjCBSnrZo37WE/UvTetyogsZQYE5UbfamD23NBC+xUwzHKnDs8obKeLazRdz SOSqXxqU8aIjw7+AABUYHtOok+cckC2ggpjj1ObvfSy6TLDaaphKFSdskGF5opQBpAUo 2D//xZAsjapEseKdvjZHcZyO+fILp49yHoBsrrRirUa3+pu51ZI05DQvn9z9jjfYqXEV paUA== X-Gm-Message-State: AOAM530KxmIqLv5oqjqWTIBo3aXL2zuU6TBob2bsdlFqPeBLQiMlj9MX POudzs8wP5BId+LpTJ2P5npwBFhPT9KUzaRP X-Received: by 2002:a67:e06:: with SMTP id 6mr18680640vso.21.1618334975402; Tue, 13 Apr 2021 10:29:35 -0700 (PDT) Received: from mail-vs1-f41.google.com (mail-vs1-f41.google.com. [209.85.217.41]) by smtp.gmail.com with ESMTPSA id s84sm1261818vkd.45.2021.04.13.10.29.34 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 13 Apr 2021 10:29:34 -0700 (PDT) Received: by mail-vs1-f41.google.com with SMTP id 66so8914547vsk.9 for ; Tue, 13 Apr 2021 10:29:34 -0700 (PDT) X-Received: by 2002:a67:d994:: with SMTP id u20mr25110324vsj.29.1618334973954; Tue, 13 Apr 2021 10:29:33 -0700 (PDT) MIME-Version: 1.0 References: <1618276850-27178-1-git-send-email-johnny.chuang.emc@gmail.com> In-Reply-To: <1618276850-27178-1-git-send-email-johnny.chuang.emc@gmail.com> From: Harry Cutts Date: Tue, 13 Apr 2021 10:29:22 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v3] HID: i2c-hid: Skip ELAN power-on command after reset To: Johnny Chuang Cc: Dmitry Torokhov , Benjamin Tissoires , Peter Hutterer , lkml , linux-input , Johnny Chuang , James Chen , Jennifer Tsai , Paul Liang , Jeff Chuang , Douglas Anderson , Jingle Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 12 Apr 2021 at 18:20, Johnny Chuang wrote: > > Fixes: 43b7029f475e ("HID: i2c-hid: Send power-on command after reset"). > > 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. > > Signed-off-by: Johnny Chuang > --- > Changes in V3: > - intent the comment at qurik entry > - add Fixes:flag for previous commit id > > Changes in v2: > - move comment to quirk entry Reviewed-by: Harry Cutts Harry Cutts Chrome OS Touch/Input team > --- > drivers/hid/i2c-hid/i2c-hid-core.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/drivers/hid/i2c-hid/i2c-hid-core.c b/drivers/hid/i2c-hid/i2c-hid-core.c > index 9993133..32e3287 100644 > --- 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,12 @@ 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 > + * Add I2C_HID_QUIRK_NO_WAKEUP_AFTER_RESET to skip wakeup after reset > + */ > + { USB_VENDOR_ID_ELAN, HID_ANY_ID, > + I2C_HID_QUIRK_NO_WAKEUP_AFTER_RESET }, > { 0, 0 } > }; > > @@ -461,7 +468,8 @@ static int i2c_hid_hwreset(struct i2c_client *client) > } > > /* 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); > -- > 2.7.4 >