summaryrefslogtreecommitdiff
path: root/hw/xfree86/ddc
diff options
context:
space:
mode:
authorAdam Jackson <ajax@redhat.com>2008-08-25 10:44:45 -0400
committerAdam Jackson <ajax@redhat.com>2008-08-25 10:44:45 -0400
commit76ed409acd772f2c041239345c6dc64cbef0e5b2 (patch)
tree02c85b271ddc5ba69ce8536935af811ca7ccce01 /hw/xfree86/ddc
parent5724f7fb5bea6fa1a354c64c0972c53d70e2f27b (diff)
EDID: Publish the whole block on the root window if we've got it.
Diffstat (limited to 'hw/xfree86/ddc')
-rw-r--r--hw/xfree86/ddc/ddcProperty.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/hw/xfree86/ddc/ddcProperty.c b/hw/xfree86/ddc/ddcProperty.c
index 02125dff7..a4384f1d3 100644
--- a/hw/xfree86/ddc/ddcProperty.c
+++ b/hw/xfree86/ddc/ddcProperty.c
@@ -83,13 +83,18 @@ addRootWindowProperties(ScrnInfoPtr pScrn, xf86MonPtr DDC)
}
if (makeEDID1prop) {
- if ((EDID1rawdata = xalloc(128*sizeof(CARD8)))==NULL)
+ int size = 128;
+
+ if (DDC->flags & EDID_COMPLETE_RAWDATA)
+ size += DDC->no_sections * 128;
+
+ if ((EDID1rawdata = xalloc(size*sizeof(CARD8)))==NULL)
return;
EDID1Atom = MakeAtom(EDID1_ATOM_NAME, sizeof(EDID1_ATOM_NAME) - 1, TRUE);
- memcpy(EDID1rawdata, DDC->rawData, 128);
+ memcpy(EDID1rawdata, DDC->rawData, size);
xf86RegisterRootWindowProperty(scrnIndex, EDID1Atom, XA_INTEGER, 8,
- 128, (unsigned char *)EDID1rawdata);
+ size, (unsigned char *)EDID1rawdata);
}
if (makeEDID2prop) {