Received: by 2002:a05:6358:c692:b0:131:369:b2a3 with SMTP id fe18csp1391034rwb; Fri, 28 Jul 2023 08:46:11 -0700 (PDT) X-Google-Smtp-Source: APBJJlGlHF7z5D4kmdfiy9ImQfG9FgeNiqxmiL5M0utXqxUKOT8t04pXGQ4wkA7Uz0n01W7FYndY X-Received: by 2002:a17:90a:9c2:b0:268:71e4:ec2a with SMTP id 60-20020a17090a09c200b0026871e4ec2amr1831013pjo.48.1690559171154; Fri, 28 Jul 2023 08:46:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690559171; cv=none; d=google.com; s=arc-20160816; b=XUWXsuXUQ9MnRZ8S7yvG4UPTGLvBpVvD0naF7aVAEMkcJLuHRDPcUAhpJM3JUHsDFl SB38KhxPu4I1PMuNpBfqclOshZkVVSioh+kerd41DRw3VdojCOlnPaAs+mI6LUrHx6V0 fI6fEpDDOUIYvRTyZcvnLSRTAPjRURmRyKHV7BncvJTzfA6DM5ebYScXPTUNMKzJZ53a D8XkA20PtqxjN1tPYPZZf2AMCHRcFWhvXw0ml8d2fuB0z3NGxy9mpF3VR9CvubF7ymJv mVbLUGdShB4bOibutOq1f61Dhp1n9L5Or/ewBbRiLTATg37m+cANxAW3shRc4S0Gd38H W5AQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=gAsgKfo/xEfj3WAdBycElR/a6JWbDSyRuFiX6UhcHq8=; fh=2ekbto06gjgmBYWgG5GufwgaayHw2gvFlue/P8knCGs=; b=Xx3erLWMshwA7KjyYw/zb5j7nh13UvAwCt28+I70keQ19JE/kk+U4CzFD8nXQpITWm tlwQca890PGFsDsdz4pmVNw9i+clLPEPrFZ1YY4OBRS1dOXtXXIdSy2ugP3OE+hKCukJ XLzQJAAuoZPTf5yJNfFSC951puVDZPH4rdouYEGEGw/QGBW5PCtDnLjjSt7ooVXc1tVB DprNilli21wwz06EN8HDt3iHMJgqaHLMviquayK644wQI736PrbmnYz/BxALdFXSj8Js 2Q7kLMk1MuUI1hVqaxtpNikQaegrXTzhHgNdWzvJZJfDdJFFw3Xr9OKhs3S+Z0b3rm8E KFyQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=mXENTxOx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n127-20020a632785000000b00542abcf2ce4si3283454pgn.623.2023.07.28.08.45.58; Fri, 28 Jul 2023 08:46:11 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=mXENTxOx; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237350AbjG1Pb7 (ORCPT + 99 others); Fri, 28 Jul 2023 11:31:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55348 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237332AbjG1Pb6 (ORCPT ); Fri, 28 Jul 2023 11:31:58 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0BBBF35AD; Fri, 28 Jul 2023 08:31:57 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 9213D62186; Fri, 28 Jul 2023 15:31:56 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 4B03CC433C9; Fri, 28 Jul 2023 15:31:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1690558315; bh=K6AA+vN45Net0ZpJHQ+4pBn99WhKXqI87QPut7I/m8I=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=mXENTxOxDoAS6oHWOIpD9ej7WQ6KZ2hnIpR9Nnak9jPfL4uatWv+mADAFZWrD+src szSgXEqgr+Z5QpnirLO3q36oKICF06z2FMzAOQUxv2kjBYUWQP12VICa0Tpu1y+Em3 9qx16EnekEKcl0ZCUPz6NH4+fUTnG+kQq6KSguSGc0jLICbKKmcqD77/ZMrvo4oKNT F1CITcfN65gUPuy1o4gpmx+FYpGEmV7Vhz20+xOpfRz5v5dLhcbtEsAqrgQHOn0a+e m6YBzFWtdkbaQlhKhL/GcHgvhMKkGVFFQ9s1P7yt1DQw6cQ0lVGiIsCF7iJDndCXvi MDDWiuPo2zr2Q== Date: Fri, 28 Jul 2023 17:31:48 +0200 From: Benjamin Tissoires To: Douglas Anderson Cc: Jiri Kosina , Benjamin Tissoires , Bjorn Andersson , Konrad Dybcio , Rob Herring , Frank Rowand , Krzysztof Kozlowski , Conor Dooley , Neil Armstrong , Sam Ravnborg , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , linux-arm-msm@vger.kernel.org, yangcong5@huaqin.corp-partner.google.com, devicetree@vger.kernel.org, Daniel Vetter , hsinyi@google.com, Chris Morgan , linux-input@vger.kernel.org, cros-qcom-dts-watchers@chromium.org, Dmitry Torokhov , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org Subject: Re: [PATCH v4 00/11] drm/panel and i2c-hid: Allow panels and touchscreens to power sequence together Message-ID: References: <20230727171750.633410-1-dianders@chromium.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230727171750.633410-1-dianders@chromium.org> X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Jul 27 2023, Douglas Anderson wrote: > > The big motivation for this patch series is mostly described in the patch > ("drm/panel: Add a way for other devices to follow panel state"), but to > quickly summarize here: for touchscreens that are connected to a panel we > need the ability to power sequence the two device together. This is not a > new need, but so far we've managed to get by through a combination of > inefficiency, added costs, or perhaps just a little bit of brokenness. > It's time to do better. This patch series allows us to do better. > > Assuming that people think this patch series looks OK, we'll have to > figure out the right way to land it. The panel patches and i2c-hid > patches will go through very different trees and so either we'll need > an Ack from one side or the other or someone to create a tag for the > other tree to pull in. This will _probably_ require the true drm-misc > maintainers to get involved, not a lowly committer. ;-) > > Version 4 of this series adds a new patch that suspends i2c-hid > devices at remove time even for non panel-followers to make things > consistent. It also attempts to isolate the panel follower code a bit > more as per Benjamin's feedback on v3 and adds an item to the DRM todo > list as per Maxime's request. As per Maxime's response to my v3 cover > letter, I added his Reviewed-by tag to all 10 patches that were part > of v3 (but left it off of the new i2c-hid patch in v4). > > Version 3 of this series was a long time coming after v2. Maxime and I > had a very long discussion trying to figure out if there was a beter > way and in the end we didn't find one so he was OK with the series in > general [1]. After that got resolved, I tried to resolve Benjamin's > feedback but got stuck [2]. Eventually I made my best guess. The end > result was a v3 that wasn't that different from v2 but that had a tiny > bit more code split out. > > Version 2 of this patch series didn't change too much. At a high level: > * I added all the forgotten "static" to functions. > * I've hopefully made the bindings better. > * I've integrated into fw_devlink. > * I cleaned up a few descriptions / comments. > > As far as I can tell, as of v4 everyone is on the same page that this > patch series looks like a reasonable solution to the problem and we > just need to get all the nits fixed and figure out how to land it. Thanks a lot for the new version. I like it much more on the HID side: for the HID part: Reviewed-by: Benjamin Tissoires I wouldn't mind having this series taken from the drm tree if that is easier. i2c-hid is a low patch rate driver, so having it updated through DRM should not be an issue. In that case: Acked-by: Benjamin Tissoires Cheers, Benjamin > > [1] https://lore.kernel.org/r/gkwymmfkdy2p2evz22wmbwgw42ii4wnvmvu64m3bghmj2jhv7x@4mbstjxnagxd > [2] https://lore.kernel.org/r/CAD=FV=VbdeomBGbWhppY+5TOSwt64GWBHga68OXFwsnO4gg4UA@mail.gmail.com > > Changes in v4: > - Document further cleanup in the official DRM todo list. > - ("Suspend i2c-hid devices in remove") new for v4. > - Move panel follower alternative checks to wrapper functions. > - Rebase atop ("Suspend i2c-hid devices in remove"). > > Changes in v3: > - Add is_panel_follower() as a convenience for clients. > - Add "depends on DRM || !DRM" to Kconfig to avoid randconfig error. > - Split more of the panel follower code out of the core. > > Changes in v2: > - Move the description to the generic touchscreen.yaml. > - Update the desc to make it clearer it's only for integrated devices. > - Add even more text to the commit message. > - A few comment cleanups. > - ("Add a devlink for panel followers") new for v2. > - i2c_hid_core_initial_power_up() is now static. > - i2c_hid_core_panel_prepared() and ..._unpreparing() are now static. > - ihid_core_panel_prepare_work() is now static. > - Improve documentation for smp_wmb(). > > Douglas Anderson (11): > dt-bindings: HID: i2c-hid: Add "panel" property to i2c-hid backed > touchscreens > drm/panel: Check for already prepared/enabled in drm_panel > drm/panel: Add a way for other devices to follow panel state > of: property: fw_devlink: Add a devlink for panel followers > HID: i2c-hid: Switch to SYSTEM_SLEEP_PM_OPS() > HID: i2c-hid: Rearrange probe() to power things up later > HID: i2c-hid: Make suspend and resume into helper functions > HID: i2c-hid: Suspend i2c-hid devices in remove > HID: i2c-hid: Support being a panel follower > HID: i2c-hid: Do panel follower work on the system_wq > arm64: dts: qcom: sc7180: Link trogdor touchscreens to the panels > > .../bindings/input/elan,ekth6915.yaml | 5 + > .../bindings/input/goodix,gt7375p.yaml | 5 + > .../bindings/input/hid-over-i2c.yaml | 2 + > .../input/touchscreen/touchscreen.yaml | 7 + > Documentation/gpu/todo.rst | 24 ++ > .../boot/dts/qcom/sc7180-trogdor-coachz.dtsi | 1 + > .../dts/qcom/sc7180-trogdor-homestar.dtsi | 1 + > .../boot/dts/qcom/sc7180-trogdor-lazor.dtsi | 1 + > .../boot/dts/qcom/sc7180-trogdor-pompom.dtsi | 1 + > .../qcom/sc7180-trogdor-quackingstick.dtsi | 1 + > .../dts/qcom/sc7180-trogdor-wormdingler.dtsi | 1 + > drivers/gpu/drm/drm_panel.c | 218 ++++++++++- > drivers/hid/i2c-hid/Kconfig | 2 + > drivers/hid/i2c-hid/i2c-hid-core.c | 349 +++++++++++++----- > drivers/of/property.c | 2 + > include/drm/drm_panel.h | 94 +++++ > 16 files changed, 617 insertions(+), 97 deletions(-) > > -- > 2.41.0.487.g6d72f3e995-goog >