diff options
| -rw-r--r-- | drivers/gpu/drm/udl/udl_connector.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/udl/udl_connector.c b/drivers/gpu/drm/udl/udl_connector.c index 512f44add89..3e6208f773e 100644 --- a/drivers/gpu/drm/udl/udl_connector.c +++ b/drivers/gpu/drm/udl/udl_connector.c | |||
| @@ -57,6 +57,14 @@ static int udl_get_modes(struct drm_connector *connector) | |||
| 57 | 57 | ||
| 58 | edid = (struct edid *)udl_get_edid(udl); | 58 | edid = (struct edid *)udl_get_edid(udl); |
| 59 | 59 | ||
| 60 | /* | ||
| 61 | * We only read the main block, but if the monitor reports extension | ||
| 62 | * blocks then the drm edid code expects them to be present, so patch | ||
| 63 | * the extension count to 0. | ||
| 64 | */ | ||
| 65 | edid->checksum += edid->extensions; | ||
| 66 | edid->extensions = 0; | ||
| 67 | |||
| 60 | drm_mode_connector_update_edid_property(connector, edid); | 68 | drm_mode_connector_update_edid_property(connector, edid); |
| 61 | ret = drm_add_edid_modes(connector, edid); | 69 | ret = drm_add_edid_modes(connector, edid); |
| 62 | kfree(edid); | 70 | kfree(edid); |
