diff --git a/src/drmmode_display.c b/src/drmmode_display.c index 141c027..e485256 100644 --- a/src/drmmode_display.c +++ b/src/drmmode_display.c @@ -60,6 +60,9 @@ typedef struct { } drmmode_output_private_rec, *drmmode_output_private_ptr; static void +drmmode_output_dpms(xf86OutputPtr output, int mode); + +static void drmmode_ConvertFromKMode(ScrnInfoPtr scrn, drmModeModeInfoPtr kmode, DisplayModePtr mode) @@ -210,6 +213,16 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode, else ret = TRUE; + /* Turn on any outputs on this crtc that may have been disabled */ + for (i = 0; i < xf86_config->num_output; i++) { + xf86OutputPtr output = xf86_config->output[i]; + + if (output->crtc != crtc) + continue; + + drmmode_output_dpms(output, DPMSModeOn); + } + done: if (!ret) { crtc->x = saved_x;