From: Stephen Chandler Paul <[email protected]>

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()]

Signed-off-by: Stephen Chandler Paul <[email protected]>
Reviewed-by: Michel Dänzer <[email protected]>

Ported from radeon commit:
7186a8713ba004de4991f21c1a9fc4abc62aeff4
---
 src/drmmode_display.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index cd401af..fcd3e9d 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -699,14 +699,16 @@ drmmode_set_mode_major(xf86CrtcPtr crtc, DisplayModePtr 
mode,
                                amdgpu_glamor_finish(pScrn);
                        }
                }
-               ret =
-                   drmModeSetCrtc(pAMDGPUEnt->fd,
-                                  drmmode_crtc->mode_crtc->crtc_id, fb_id, x,
-                                  y, output_ids, output_count, &kmode);
-               if (ret)
+
+               if (drmModeSetCrtc(pAMDGPUEnt->fd,
+                                  drmmode_crtc->mode_crtc->crtc_id,
+                                  fb_id, x, y, output_ids,
+                                  output_count, &kmode) != 0) {
                        xf86DrvMsg(crtc->scrn->scrnIndex, X_ERROR,
-                                  "failed to set mode: %s", strerror(-ret));
-               else
+                                  "failed to set mode: %s", strerror(errno));
+                       ret = FALSE;
+                       goto done;
+               } else
                        ret = TRUE;
 
                if (crtc->scrn->pScreen)
-- 
1.8.3.1

_______________________________________________
xorg-driver-ati mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-driver-ati

Reply via email to