ecore_drm2: Don't try to disable all devices when session deactivates
authorDerek Foreman <derekf@osg.samsung.com>
Fri, 2 Jun 2017 18:19:58 +0000 (13:19 -0500)
committerDerek Foreman <derekf@osg.samsung.com>
Fri, 2 Jun 2017 20:50:09 +0000 (15:50 -0500)
We get this callback after we've lost the drm device to logind, so
deactivating stuff here will just generate a lot of ERR messages
and break our internal book-keeping.

Instead, we just turn on DPMS on session activation instead of trying
to go through the output enable path (that will bail if it's already
enabled)

This could potentially result in a display that's enabled and DPMS
off being switched back on during session activation - if that's a real
problem we can restore the previous dpms state instead...

@fix T5483

src/lib/ecore_drm2/ecore_drm2_device.c

index 41d2128..2a1680c 100644 (file)
@@ -22,8 +22,9 @@ _cb_session_active(void *data, int type EINA_UNUSED, void *event)
    ev = event;
    device = data;
 
-   EINA_LIST_FOREACH(device->outputs, l, output)
-     ecore_drm2_output_enabled_set(output, ev->active);
+   if (ev->active)
+     EINA_LIST_FOREACH(device->outputs, l, output)
+       ecore_drm2_output_dpms_set(output, DRM_MODE_DPMS_ON);
 
    ea = calloc(1, sizeof(Ecore_Drm2_Event_Activate));
    if (!ea) return ECORE_CALLBACK_RENEW;