On Wed, Sep 27, 2017 at 12:29:46AM +0200, Karsten Wiese wrote: > 2017-09-25 15:48 GMT+02:00 Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx>: > > > On Tue, 19 Sep 2017, Karsten Wiese <fzuuzf@xxxxxxxxxxxxxx> 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? > > > > The patch enables cpu cycle less waiting for dpms flag changes. > > Here it lets a screen brightness setting daemon know which monitor to > handle. > One of the attached screens gets confused if it is set just after being > switched on, > hence the daemon leaves it untouched until it has been active for some > seconds. Without knowing more details, but a brightness deamon in userspace sounds rather wrong. The driver is supposed to take care of this and shut down the backlight when we disable the output for a panel. > Without the patch the daemon would have to actively read the dpms flag > every once in a while. On top of that, any uabi changes need open source userspace. -Daniel > > > > > > We have zero sysfs_notify in all of drm AFAICT. > > > Yes I noticed too and looked for some dbus signal to listen to but didn't > find any. > > BR, > Karsten > > > > > BR, > > Jani. > > > > > > > > > > Tested with i915 suspended by XScreenServer and > > > suspend to RAM. > > > > > > Signed-off-by: Karsten Wiese <fzuuzf@xxxxxxxxxxxxxx> > > > --- > > > 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 > > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel