diff options
author | Adam Jackson <ajax@redhat.com> | 2008-08-25 10:44:45 -0400 |
---|---|---|
committer | Adam Jackson <ajax@redhat.com> | 2008-08-25 10:44:45 -0400 |
commit | 76ed409acd772f2c041239345c6dc64cbef0e5b2 (patch) | |
tree | 02c85b271ddc5ba69ce8536935af811ca7ccce01 /hw/xfree86/ddc | |
parent | 5724f7fb5bea6fa1a354c64c0972c53d70e2f27b (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.c | 11 |
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) { |