From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8C5EDC433B4 for ; Tue, 13 Apr 2021 17:30:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6DF86613B6 for ; Tue, 13 Apr 2021 17:30:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347193AbhDMRa5 (ORCPT ); Tue, 13 Apr 2021 13:30:57 -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-Google-Smtp-Source: ABdhPJze8Zh8fqaxgJJC1Cs6cZddcg5KNfjRccWPo0t3kxfCdwalDdh125DrPInlFHuulLxgcfLXKA== 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 >