rpms/kernel/F-12 drm-edid-header-fixup.patch, NONE, 1.1 kernel.spec, 1.1916, 1.1917
Adam Jackson
ajax at fedoraproject.org
Thu Nov 12 19:11:48 UTC 2009
Author: ajax
Update of /cvs/pkgs/rpms/kernel/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv2654
Modified Files:
kernel.spec
Added Files:
drm-edid-header-fixup.patch
Log Message:
* Thu Nov 12 2009 Adam Jackson <ajax at redhat.com>
- Actually apply the EDID retry patch
- drm-edid-header-fixup.patch: Fix up some broken EDID headers (#534120)
drm-edid-header-fixup.patch:
drm_edid.c | 22 ++++++++++++++++------
1 file changed, 16 insertions(+), 6 deletions(-)
--- NEW FILE drm-edid-header-fixup.patch ---
diff -up linux-2.6.31.noarch/drivers/gpu/drm/drm_edid.c.jx linux-2.6.31.noarch/drivers/gpu/drm/drm_edid.c
--- linux-2.6.31.noarch/drivers/gpu/drm/drm_edid.c.jx 2009-11-12 13:52:01.000000000 -0500
+++ linux-2.6.31.noarch/drivers/gpu/drm/drm_edid.c 2009-11-12 14:00:26.000000000 -0500
@@ -123,16 +123,21 @@ static const u8 edid_header[] = {
*/
static bool edid_is_valid(struct edid *edid)
{
- int i;
+ int i, score = 0;
u8 csum = 0;
u8 *raw_edid = (u8 *)edid;
- if (memcmp(edid->header, edid_header, sizeof(edid_header)))
- goto bad;
- if (edid->version != 1) {
- DRM_ERROR("EDID has major version %d, instead of 1\n", edid->version);
+ for (i = 0; i < sizeof(edid_header); i++)
+ if (raw_edid[i] == edid_header[i])
+ score++;
+
+ if (score == 8) ;
+ else if (score >= 6) {
+ DRM_DEBUG("Fixing EDID header, your hardware may be failing\n");
+ memcpy(raw_edid, edid_header, sizeof(edid_header));
+ } else
goto bad;
- }
+
for (i = 0; i < EDID_LENGTH; i++)
csum += raw_edid[i];
if (csum) {
@@ -140,6 +145,11 @@ static bool edid_is_valid(struct edid *e
goto bad;
}
+ if (edid->version != 1) {
+ DRM_ERROR("EDID has major version %d, instead of 1\n", edid->version);
+ goto bad;
+ }
+
if (edid->revision > 4)
DRM_DEBUG("EDID minor > 4, assuming backward compatibility\n");
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-12/kernel.spec,v
retrieving revision 1.1916
retrieving revision 1.1917
diff -u -p -r1.1916 -r1.1917
--- kernel.spec 12 Nov 2009 16:50:22 -0000 1.1916
+++ kernel.spec 12 Nov 2009 19:11:48 -0000 1.1917
@@ -718,6 +718,7 @@ Patch1830: drm-r600-lenovo-w500-fix.patc
Patch1831: drm-conservative-fallback-modes.patch
Patch1832: drm-edid-retry.patch
Patch1833: drm-radeon-fix-agp-resume.patch
+Patch1834: drm-edid-header-fixup.patch
# vga arb
Patch1900: linux-2.6-vga-arb.patch
@@ -1397,6 +1398,8 @@ ApplyPatch drm-radeon-fix-ring-rmw-issue
ApplyPatch drm-r600-lenovo-w500-fix.patch
ApplyPatch drm-conservative-fallback-modes.patch
ApplyPatch drm-radeon-fix-agp-resume.patch
+ApplyPatch drm-edid-retry.patch
+ApplyPatch drm-edid-header-fixup.patch
ApplyPatch drm-nouveau.patch
# pm broken on my thinkpad t60p - airlied
@@ -2108,6 +2111,10 @@ fi
# and build.
%changelog
+* Thu Nov 12 2009 Adam Jackson <ajax at redhat.com>
+- Actually apply the EDID retry patch
+- drm-edid-header-fixup.patch: Fix up some broken EDID headers (#534120)
+
* Thu Nov 12 2009 Chuck Ebbert <cebbert at redhat.com> 2.6.31.6-130
- Use ApplyOptionalPatch for v4l and firewire updates.
- Drop unused v4l ABI fix.
More information about the scm-commits
mailing list