[PATCH] drm: Call sysfs_notify after changing drm_connector::dpms
Jani Nikula
jani.nikula at linux.intel.com
Mon Sep 25 13:48:07 UTC 2017
On Tue, 19 Sep 2017, Karsten Wiese <fzuuzf at googlemail.com> wrote:
> This makes poll work for the
> /sys/class/drm/cardX/connectorY/dpms attributes.
I guess the question is, what are you trying to achieve? What is the
problem that this solves?
We have zero sysfs_notify in all of drm AFAICT.
BR,
Jani.
>
> Tested with i915 suspended by XScreenServer and
> suspend to RAM.
>
> Signed-off-by: Karsten Wiese <fzuuzf at googlemail.com>
> ---
> drivers/gpu/drm/drm_atomic.c | 4 ++++
> drivers/gpu/drm/drm_atomic_helper.c | 6 +++++-
> 2 files changed, 9 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
> index 2fd383d..b6fa87b 100644
> --- a/drivers/gpu/drm/drm_atomic.c
> +++ b/drivers/gpu/drm/drm_atomic.c
> @@ -1880,6 +1880,10 @@ int drm_atomic_connector_commit_dpms(struct drm_atomic_state *state,
> out:
> if (ret != 0)
> connector->dpms = old_mode;
> + else
> + if (connector->dpms != old_mode)
> + sysfs_notify(&connector->kdev->kobj, NULL, "dpms");
> +
> return ret;
> }
>
> diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c
> index 4e53aae..6198772 100644
> --- a/drivers/gpu/drm/drm_atomic_helper.c
> +++ b/drivers/gpu/drm/drm_atomic_helper.c
> @@ -921,12 +921,16 @@ drm_atomic_helper_update_legacy_modeset_state(struct drm_device *dev,
> crtc = new_conn_state->crtc;
> if ((!crtc && old_conn_state->crtc) ||
> (crtc && drm_atomic_crtc_needs_modeset(crtc->state))) {
> - int mode = DRM_MODE_DPMS_OFF;
> + int old_mode, mode = DRM_MODE_DPMS_OFF;
>
> if (crtc && crtc->state->active)
> mode = DRM_MODE_DPMS_ON;
>
> + old_mode = connector->dpms;
> connector->dpms = mode;
> + if (old_mode != mode)
> + sysfs_notify(&connector->kdev->kobj,
> + NULL, "dpms");
> }
> }
--
Jani Nikula, Intel Open Source Technology Center
More information about the dri-devel
mailing list