All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Ser <contact@emersion.fr>
To: Brian Norris <briannorris@chromium.org>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Rob Clark <robdclark@chromium.org>,
	David Airlie <airlied@linux.ie>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	Doug Anderson <dianders@chromium.org>,
	linux-rockchip@lists.infradead.org,
	"Kristian H . Kristensen" <hoegsberg@google.com>,
	Andrzej Hajda <andrzej.hajda@intel.com>,
	linux-input@vger.kernel.org, Pekka Paalanen <ppaalanen@gmail.com>
Subject: Re: [PATCH v2 0/2] drm: Support input-boosted panel self-refresh exit
Date: Thu, 18 Nov 2021 08:34:15 +0000	[thread overview]
Message-ID: <eKiIqOeH_0iCJ5qKedzwefk36VAe-8YPqi7kG52SsMs2OxEt4u1sEML07P0RQkgNR4cuj97VduO_Xa6ktp4m2pdunmQnK8hE9Zp7dDTtruw=@emersion.fr> (raw)
In-Reply-To: <20211117224841.3442482-1-briannorris@chromium.org>

Hi,

From a user-space point-of-view, we discussed about this patch on IRC a few
days ago [1]. Since this adds a policy decision we think it'd be best to allow
user-space to control this behavior.

Also cc Pekka.

Thanks,

Simon

[1]: https://oftc.irclog.whitequark.org/dri-devel/2021-11-07#1636276286-1636273745;

> A variety of applications have found it useful to listen to
> user-initiated input events to make decisions within a DRM driver, given
> that input events are often the first sign that we're going to start
> doing latency-sensitive activities:
>
>  * Panel self-refresh: software-directed self-refresh (e.g., with
>    Rockchip eDP) is especially latency sensitive. In some cases, it can
>    take 10s of milliseconds for a panel to exit self-refresh, which can
>    be noticeable. Rockchip RK3399 Chrome OS systems have always shipped
>    with an input_handler boost, that preemptively exits self-refresh
>    whenever there is input activity.
>
>  * GPU drivers: on GPU-accelerated desktop systems, we may need to
>    render new frames immediately after user activity. Powering up the
>    GPU can take enough time that it is worthwhile to start this process
>    as soon as there is input activity. Many Chrome OS systems also ship
>    with an input_handler boost that powers up the GPU.
>
> I implement the first bullet in this series, and I also compared with
> some out-of-tree patches for the second, to ensure this could be useful
> there too.
>
> Past work on upstreaming a variety of Chromebook display patches got
> held up for this particular feature, as there was some desire to make it
> a bit more generic, for one. See the latest here:
>
>   https://lore.kernel.org/all/20180405095000.9756-25-enric.balletbo@collabora.com/
>   [PATCH v6 24/30] drm/rockchip: Disable PSR on input events
>
> I significantly rewrote this to adapt it to the new common
> drm_self_refresh_helpers and to add a new drm_input_helper thin library,
> so I only carry my own authorship on this series.
>
> Admittedly, this "drm_input_helper" library is barely DRM-specific at
> all, except that all display- and GPU-related input-watchers are likely
> to want to watch similar device behavior (unlike, say, rfkill or led
> input_handler code). The approximate consensus so far seems to be that
> (a) this isn't much code; if we need it for other subsystems (like,
>     cpufreq-boost), it's easy to implement similar logic
> (b) input subsystem maintainers think the existing input_handler
>     abstraction is good enough
> So, I keep the thin input helper in drivers/gpu/drm/.
>
> v1: https://lore.kernel.org/all/20211103234018.4009771-1-briannorris@chromium.org/
>
> Changes in v2:
>  - Honor CONFIG_INPUT dependency, via new CONFIG_DRM_INPUT_HELPER
>  - Remove void*; users should use container_of()
>  - Document the callback context
>  - Delay PSR re-entry, when already disabled
>  - Allow default configuration via Kconfig and modparam
>  - really CC dri-devel@lists.freedesktop.org (oops!)
>
> Brian Norris (2):
>   drm/input_helper: Add new input-handling helper
>   drm/self_refresh: Disable self-refresh on input events
>
>  drivers/gpu/drm/Kconfig                   |  22 ++++
>  drivers/gpu/drm/Makefile                  |   2 +
>  drivers/gpu/drm/drm_input_helper.c        | 143 ++++++++++++++++++++++
>  drivers/gpu/drm/drm_self_refresh_helper.c |  98 ++++++++++++---
>  include/drm/drm_input_helper.h            |  41 +++++++
>  5 files changed, 292 insertions(+), 14 deletions(-)
>  create mode 100644 drivers/gpu/drm/drm_input_helper.c
>  create mode 100644 include/drm/drm_input_helper.h
>
> --
> 2.34.0.rc1.387.gb447b232ab-goog

WARNING: multiple messages have this Message-ID (diff)
From: Simon Ser <contact@emersion.fr>
To: Brian Norris <briannorris@chromium.org>
Cc: Rob Clark <robdclark@chromium.org>,
	Andrzej Hajda <andrzej.hajda@intel.com>,
	David Airlie <airlied@linux.ie>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	linux-kernel@vger.kernel.org,
	Doug Anderson <dianders@chromium.org>,
	linux-rockchip@lists.infradead.org,
	"Kristian H . Kristensen" <hoegsberg@google.com>,
	dri-devel@lists.freedesktop.org,
	Thomas Zimmermann <tzimmermann@suse.de>,
	linux-input@vger.kernel.org
Subject: Re: [PATCH v2 0/2] drm: Support input-boosted panel self-refresh exit
Date: Thu, 18 Nov 2021 08:34:15 +0000	[thread overview]
Message-ID: <eKiIqOeH_0iCJ5qKedzwefk36VAe-8YPqi7kG52SsMs2OxEt4u1sEML07P0RQkgNR4cuj97VduO_Xa6ktp4m2pdunmQnK8hE9Zp7dDTtruw=@emersion.fr> (raw)
In-Reply-To: <20211117224841.3442482-1-briannorris@chromium.org>

Hi,

From a user-space point-of-view, we discussed about this patch on IRC a few
days ago [1]. Since this adds a policy decision we think it'd be best to allow
user-space to control this behavior.

Also cc Pekka.

Thanks,

Simon

[1]: https://oftc.irclog.whitequark.org/dri-devel/2021-11-07#1636276286-1636273745;

> A variety of applications have found it useful to listen to
> user-initiated input events to make decisions within a DRM driver, given
> that input events are often the first sign that we're going to start
> doing latency-sensitive activities:
>
>  * Panel self-refresh: software-directed self-refresh (e.g., with
>    Rockchip eDP) is especially latency sensitive. In some cases, it can
>    take 10s of milliseconds for a panel to exit self-refresh, which can
>    be noticeable. Rockchip RK3399 Chrome OS systems have always shipped
>    with an input_handler boost, that preemptively exits self-refresh
>    whenever there is input activity.
>
>  * GPU drivers: on GPU-accelerated desktop systems, we may need to
>    render new frames immediately after user activity. Powering up the
>    GPU can take enough time that it is worthwhile to start this process
>    as soon as there is input activity. Many Chrome OS systems also ship
>    with an input_handler boost that powers up the GPU.
>
> I implement the first bullet in this series, and I also compared with
> some out-of-tree patches for the second, to ensure this could be useful
> there too.
>
> Past work on upstreaming a variety of Chromebook display patches got
> held up for this particular feature, as there was some desire to make it
> a bit more generic, for one. See the latest here:
>
>   https://lore.kernel.org/all/20180405095000.9756-25-enric.balletbo@collabora.com/
>   [PATCH v6 24/30] drm/rockchip: Disable PSR on input events
>
> I significantly rewrote this to adapt it to the new common
> drm_self_refresh_helpers and to add a new drm_input_helper thin library,
> so I only carry my own authorship on this series.
>
> Admittedly, this "drm_input_helper" library is barely DRM-specific at
> all, except that all display- and GPU-related input-watchers are likely
> to want to watch similar device behavior (unlike, say, rfkill or led
> input_handler code). The approximate consensus so far seems to be that
> (a) this isn't much code; if we need it for other subsystems (like,
>     cpufreq-boost), it's easy to implement similar logic
> (b) input subsystem maintainers think the existing input_handler
>     abstraction is good enough
> So, I keep the thin input helper in drivers/gpu/drm/.
>
> v1: https://lore.kernel.org/all/20211103234018.4009771-1-briannorris@chromium.org/
>
> Changes in v2:
>  - Honor CONFIG_INPUT dependency, via new CONFIG_DRM_INPUT_HELPER
>  - Remove void*; users should use container_of()
>  - Document the callback context
>  - Delay PSR re-entry, when already disabled
>  - Allow default configuration via Kconfig and modparam
>  - really CC dri-devel@lists.freedesktop.org (oops!)
>
> Brian Norris (2):
>   drm/input_helper: Add new input-handling helper
>   drm/self_refresh: Disable self-refresh on input events
>
>  drivers/gpu/drm/Kconfig                   |  22 ++++
>  drivers/gpu/drm/Makefile                  |   2 +
>  drivers/gpu/drm/drm_input_helper.c        | 143 ++++++++++++++++++++++
>  drivers/gpu/drm/drm_self_refresh_helper.c |  98 ++++++++++++---
>  include/drm/drm_input_helper.h            |  41 +++++++
>  5 files changed, 292 insertions(+), 14 deletions(-)
>  create mode 100644 drivers/gpu/drm/drm_input_helper.c
>  create mode 100644 include/drm/drm_input_helper.h
>
> --
> 2.34.0.rc1.387.gb447b232ab-goog

WARNING: multiple messages have this Message-ID (diff)
From: Simon Ser <contact@emersion.fr>
To: Brian Norris <briannorris@chromium.org>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
	Maxime Ripard <mripard@kernel.org>,
	Thomas Zimmermann <tzimmermann@suse.de>,
	Rob Clark <robdclark@chromium.org>,
	David Airlie <airlied@linux.ie>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	Doug Anderson <dianders@chromium.org>,
	linux-rockchip@lists.infradead.org,
	"Kristian H . Kristensen" <hoegsberg@google.com>,
	Andrzej Hajda <andrzej.hajda@intel.com>,
	linux-input@vger.kernel.org, Pekka Paalanen <ppaalanen@gmail.com>
Subject: Re: [PATCH v2 0/2] drm: Support input-boosted panel self-refresh exit
Date: Thu, 18 Nov 2021 08:34:15 +0000	[thread overview]
Message-ID: <eKiIqOeH_0iCJ5qKedzwefk36VAe-8YPqi7kG52SsMs2OxEt4u1sEML07P0RQkgNR4cuj97VduO_Xa6ktp4m2pdunmQnK8hE9Zp7dDTtruw=@emersion.fr> (raw)
In-Reply-To: <20211117224841.3442482-1-briannorris@chromium.org>

Hi,

From a user-space point-of-view, we discussed about this patch on IRC a few
days ago [1]. Since this adds a policy decision we think it'd be best to allow
user-space to control this behavior.

Also cc Pekka.

Thanks,

Simon

[1]: https://oftc.irclog.whitequark.org/dri-devel/2021-11-07#1636276286-1636273745;

> A variety of applications have found it useful to listen to
> user-initiated input events to make decisions within a DRM driver, given
> that input events are often the first sign that we're going to start
> doing latency-sensitive activities:
>
>  * Panel self-refresh: software-directed self-refresh (e.g., with
>    Rockchip eDP) is especially latency sensitive. In some cases, it can
>    take 10s of milliseconds for a panel to exit self-refresh, which can
>    be noticeable. Rockchip RK3399 Chrome OS systems have always shipped
>    with an input_handler boost, that preemptively exits self-refresh
>    whenever there is input activity.
>
>  * GPU drivers: on GPU-accelerated desktop systems, we may need to
>    render new frames immediately after user activity. Powering up the
>    GPU can take enough time that it is worthwhile to start this process
>    as soon as there is input activity. Many Chrome OS systems also ship
>    with an input_handler boost that powers up the GPU.
>
> I implement the first bullet in this series, and I also compared with
> some out-of-tree patches for the second, to ensure this could be useful
> there too.
>
> Past work on upstreaming a variety of Chromebook display patches got
> held up for this particular feature, as there was some desire to make it
> a bit more generic, for one. See the latest here:
>
>   https://lore.kernel.org/all/20180405095000.9756-25-enric.balletbo@collabora.com/
>   [PATCH v6 24/30] drm/rockchip: Disable PSR on input events
>
> I significantly rewrote this to adapt it to the new common
> drm_self_refresh_helpers and to add a new drm_input_helper thin library,
> so I only carry my own authorship on this series.
>
> Admittedly, this "drm_input_helper" library is barely DRM-specific at
> all, except that all display- and GPU-related input-watchers are likely
> to want to watch similar device behavior (unlike, say, rfkill or led
> input_handler code). The approximate consensus so far seems to be that
> (a) this isn't much code; if we need it for other subsystems (like,
>     cpufreq-boost), it's easy to implement similar logic
> (b) input subsystem maintainers think the existing input_handler
>     abstraction is good enough
> So, I keep the thin input helper in drivers/gpu/drm/.
>
> v1: https://lore.kernel.org/all/20211103234018.4009771-1-briannorris@chromium.org/
>
> Changes in v2:
>  - Honor CONFIG_INPUT dependency, via new CONFIG_DRM_INPUT_HELPER
>  - Remove void*; users should use container_of()
>  - Document the callback context
>  - Delay PSR re-entry, when already disabled
>  - Allow default configuration via Kconfig and modparam
>  - really CC dri-devel@lists.freedesktop.org (oops!)
>
> Brian Norris (2):
>   drm/input_helper: Add new input-handling helper
>   drm/self_refresh: Disable self-refresh on input events
>
>  drivers/gpu/drm/Kconfig                   |  22 ++++
>  drivers/gpu/drm/Makefile                  |   2 +
>  drivers/gpu/drm/drm_input_helper.c        | 143 ++++++++++++++++++++++
>  drivers/gpu/drm/drm_self_refresh_helper.c |  98 ++++++++++++---
>  include/drm/drm_input_helper.h            |  41 +++++++
>  5 files changed, 292 insertions(+), 14 deletions(-)
>  create mode 100644 drivers/gpu/drm/drm_input_helper.c
>  create mode 100644 include/drm/drm_input_helper.h
>
> --
> 2.34.0.rc1.387.gb447b232ab-goog

_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

  parent reply	other threads:[~2021-11-18  8:34 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-17 22:48 [PATCH v2 0/2] drm: Support input-boosted panel self-refresh exit Brian Norris
2021-11-17 22:48 ` Brian Norris
2021-11-17 22:48 ` Brian Norris
2021-11-17 22:48 ` [PATCH v2 1/2] drm/input_helper: Add new input-handling helper Brian Norris
2021-11-17 22:48   ` Brian Norris
2021-11-17 22:48   ` Brian Norris
2021-11-18  9:05   ` Daniel Vetter
2021-11-18  9:05     ` Daniel Vetter
2021-11-18  9:05     ` Daniel Vetter
2021-11-18 19:30     ` Brian Norris
2021-11-18 19:30       ` Brian Norris
2021-11-19 10:01       ` Daniel Vetter
2021-11-19 10:01         ` Daniel Vetter
2021-11-19 10:01         ` Daniel Vetter
2021-11-19 19:07         ` Brian Norris
2021-11-19 19:07           ` Brian Norris
2021-11-25 15:25           ` Daniel Vetter
2021-11-25 15:25             ` Daniel Vetter
2021-11-25 15:25             ` Daniel Vetter
2021-11-18 10:39   ` Pekka Paalanen
2021-11-18 10:39     ` Pekka Paalanen
2021-11-18 10:39     ` Pekka Paalanen
2021-11-18 23:30     ` Rob Clark
2021-11-18 23:30       ` Rob Clark
2021-11-18 23:30       ` Rob Clark
2021-11-19  9:54       ` Pekka Paalanen
2021-11-19  9:54         ` Pekka Paalanen
2021-11-19  9:54         ` Pekka Paalanen
2021-11-19 15:53         ` Daniel Vetter
2021-11-19 15:53           ` Daniel Vetter
2021-11-19 15:53           ` Daniel Vetter
2021-11-19 16:04           ` Simon Ser
2021-11-19 16:04             ` Simon Ser
2021-11-19 16:04             ` Simon Ser
2021-11-19 16:11             ` Daniel Vetter
2021-11-19 16:11               ` Daniel Vetter
2021-11-19 16:11               ` Daniel Vetter
2021-11-22  9:43               ` Pekka Paalanen
2021-11-22  9:43                 ` Pekka Paalanen
2021-11-22  9:43                 ` Pekka Paalanen
2021-11-25 15:30                 ` Daniel Vetter
2021-11-25 15:30                   ` Daniel Vetter
2021-11-25 15:30                   ` Daniel Vetter
2021-11-19 16:44         ` Rob Clark
2021-11-19 16:44           ` Rob Clark
2021-11-19 16:44           ` Rob Clark
2021-11-19 16:50           ` Doug Anderson
2021-11-19 16:50             ` Doug Anderson
2021-11-19 16:50             ` Doug Anderson
2021-11-19  1:46     ` Brian Norris
2021-11-19  1:46       ` Brian Norris
2021-11-19  1:46       ` Brian Norris
2021-11-19 10:38       ` Pekka Paalanen
2021-11-19 10:38         ` Pekka Paalanen
2021-11-19 10:38         ` Pekka Paalanen
2021-11-19 15:56         ` Daniel Vetter
2021-11-19 15:56           ` Daniel Vetter
2021-11-19 15:56           ` Daniel Vetter
2021-11-22  9:25           ` Pekka Paalanen
2021-11-22  9:25             ` Pekka Paalanen
2021-11-22  9:25             ` Pekka Paalanen
2021-11-30 20:35         ` Brian Norris
2021-11-30 20:35           ` Brian Norris
2021-11-30 20:35           ` Brian Norris
2021-12-07  3:16           ` Peter Hutterer
2021-12-07  3:16             ` Peter Hutterer
2021-12-07  3:16             ` Peter Hutterer
2021-11-17 22:48 ` [PATCH v2 2/2] drm/self_refresh: Disable self-refresh on input events Brian Norris
2021-11-17 22:48   ` Brian Norris
2021-11-17 22:48   ` Brian Norris
2021-11-18  9:11   ` Daniel Vetter
2021-11-18  9:11     ` Daniel Vetter
2021-11-18  9:11     ` Daniel Vetter
2021-11-18  8:34 ` Simon Ser [this message]
2021-11-18  8:34   ` [PATCH v2 0/2] drm: Support input-boosted panel self-refresh exit Simon Ser
2021-11-18  8:34   ` Simon Ser

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='eKiIqOeH_0iCJ5qKedzwefk36VAe-8YPqi7kG52SsMs2OxEt4u1sEML07P0RQkgNR4cuj97VduO_Xa6ktp4m2pdunmQnK8hE9Zp7dDTtruw=@emersion.fr' \
    --to=contact@emersion.fr \
    --cc=airlied@linux.ie \
    --cc=andrzej.hajda@intel.com \
    --cc=briannorris@chromium.org \
    --cc=dianders@chromium.org \
    --cc=dmitry.torokhov@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=hoegsberg@google.com \
    --cc=linux-input@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=mripard@kernel.org \
    --cc=ppaalanen@gmail.com \
    --cc=robdclark@chromium.org \
    --cc=tzimmermann@suse.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.