diff options
author | Ray Smith <raymond.smith@arm.com> | 2013-06-07 15:37:19 +0100 |
---|---|---|
committer | Ray Smith <raymond.smith@arm.com> | 2013-06-07 15:37:19 +0100 |
commit | c9c2faf3cf5d76eb8041016b70619dbb453ae3e5 (patch) | |
tree | 243207c866cc7b6e78f20d5ef9a43f12b3654f0a | |
parent | af046151a16e9d6096b29562c5f3b0e357f68f56 (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.c | 11 |
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); |