modesetting: Handle failures in setting a CRTC to a DRM mode properly
This fixes a bug where running the card out of PPLL's when hotplugging another monitor would result in all of the displays going blank and failing to work properly until X was restarted or the user switched to another VT. [Michel Dänzer: Pass errno instead of -ret to strerror()] [Daniel Martin: Add \n to log message] Picked from xf86-video-ati 7186a87 Handle failures in setting a CRTC to a DRM mode properly Signed-off-by: Daniel Martin <consume.noise@gmail.com> Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
250666586e
commit
2674d42402
|
@ -421,12 +421,13 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr mode,
|
|||
fb_id = drmmode_crtc->rotate_fb_id;
|
||||
x = y = 0;
|
||||
}
|
||||
ret = drmModeSetCrtc(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id,
|
||||
fb_id, x, y, output_ids, output_count, &kmode);
|
||||
if (ret)
|
||||
if (drmModeSetCrtc(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id,
|
||||
fb_id, x, y, output_ids, output_count, &kmode)) {
|
||||
xf86DrvMsg(crtc->scrn->scrnIndex, X_ERROR,
|
||||
"failed to set mode: %s", strerror(-ret));
|
||||
else
|
||||
"failed to set mode: %s\n", strerror(errno));
|
||||
ret = FALSE;
|
||||
goto done;
|
||||
} else
|
||||
ret = TRUE;
|
||||
|
||||
if (crtc->scrn->pScreen)
|
||||
|
|
Loading…
Reference in New Issue
Block a user