diff options
author | Jesse Barnes <jbarnes@virtuousgeek.org> | 2009-11-05 19:12:54 +0100 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2009-11-24 04:01:53 +0100 |
commit | 7064fef56369c9e2c6e35ff6d6b4b63d42a859ce (patch) | |
tree | f6efdc60afc3f74a4727089cf2fd7bac55d196da /drivers/gpu | |
parent | drm/radeon/kms: resume AGP by calling init. (diff) | |
download | linux-7064fef56369c9e2c6e35ff6d6b4b63d42a859ce.tar.xz linux-7064fef56369c9e2c6e35ff6d6b4b63d42a859ce.zip |
drm: work around EDIDs with bad htotal/vtotal values
We did this on the userspace side, but we need a similar fix for the
kernel.
Fixes LP #460664.
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: stable@kernel.org
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu')
-rw-r--r-- | drivers/gpu/drm/drm_edid.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index cea665d86dd3..b54ba63d506e 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c @@ -662,6 +662,12 @@ static struct drm_display_mode *drm_mode_detailed(struct drm_device *dev, return NULL; } + /* Some EDIDs have bogus h/vtotal values */ + if (mode->hsync_end > mode->htotal) + mode->htotal = mode->hsync_end + 1; + if (mode->vsync_end > mode->vtotal) + mode->vtotal = mode->vsync_end + 1; + drm_mode_set_name(mode); if (pt->misc & DRM_EDID_PT_INTERLACED) |