aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Smith <raymond.smith@arm.com>2013-06-07 15:37:19 +0100
committerRay Smith <raymond.smith@arm.com>2013-06-07 15:37:19 +0100
commitc9c2faf3cf5d76eb8041016b70619dbb453ae3e5 (patch)
tree243207c866cc7b6e78f20d5ef9a43f12b3654f0a
parentaf046151a16e9d6096b29562c5f3b0e357f68f56 (diff)
Fix one CRTC per Screen support
Only use one output/connector per Screen. Previously we had each Screen wrapping every DRM connector with an independent userspace wrapper of the same DRM object. These clearly interfere with each other. Change-Id: I2048f2fbc1ad084b7fc9d66be2e5a9382efa7aaf
-rw-r--r--src/drmmode_display.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 3569c38..95e98a3 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -1256,8 +1256,15 @@ Bool drmmode_pre_init(ScrnInfoPtr pScrn, int fd, int cpp)
return FALSE;
}
- for (i = 0; i < drmmode->mode_res->count_connectors; i++)
- drmmode_output_init(pScrn, drmmode, i);
+ if(ARMSOCPTR(pScrn)->crtcNum != -1) {
+ if (ARMSOCPTR(pScrn)->crtcNum < drmmode->mode_res->count_connectors)
+ drmmode_output_init(pScrn, drmmode, ARMSOCPTR(pScrn)->crtcNum);
+ else
+ return FALSE;
+ } else {
+ for (i = 0; i < drmmode->mode_res->count_connectors; i++)
+ drmmode_output_init(pScrn, drmmode, i);
+ }
xf86InitialConfiguration(pScrn, TRUE);