[PATCH] DRI/DRI2: remove hard-coded limitation to 6 crtcs

Ilija Hadzic ihadzic at research.bell-labs.com
Thu Nov 3 17:16:47 PDT 2011


DRM's hard limit to the number of CRTCs is 32. ATI DDX unnecessarily
clips this limit to 6 by hard coding initial assumption for
output->possible_crtcs mask to 0x7f (before it gets trimmed down to
what's really possible for a given output) and by allocating only 6
entries for for cursor_bo[] array in RADEONInfoRec.

Fix this and thus allow the ATI DDX to deal with as many CRTCs
as the DRM allows (32), so it is ready if anything with >6 CRTCs
comes out.

Signed-off-by: Ilija Hadzic <ihadzic at research.bell-labs.com>
---
 src/drmmode_display.c |    2 +-
 src/radeon.h          |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index f49aa3d..f9f9812 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -1011,7 +1011,7 @@ drmmode_output_init(ScrnInfoPtr pScrn, drmmode_ptr drmmode, int num, int *num_dv
 	output->doubleScanAllowed = TRUE;
 	output->driver_private = drmmode_output;
 	
-	output->possible_crtcs = 0x7f;
+	output->possible_crtcs = 0xffffffff;
 	for (i = 0; i < koutput->count_encoders; i++) {
 		output->possible_crtcs &= kencoders[i]->possible_crtcs;
 	}
diff --git a/src/radeon.h b/src/radeon.h
index f66ffd0..71a00ed 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -1066,7 +1066,7 @@ typedef struct {
     struct radeon_cs_manager *csm;
     struct radeon_cs *cs;
 
-    struct radeon_bo *cursor_bo[6];
+    struct radeon_bo *cursor_bo[32];
     uint64_t vram_size;
     uint64_t gart_size;
     drmmode_rec drmmode;
-- 
1.7.7



More information about the xorg-driver-ati mailing list