diff options
Diffstat (limited to 'drivers/gpu/drm/drm_crtc.c')
-rw-r--r-- | drivers/gpu/drm/drm_crtc.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c index 61b9bcfdf040..1d66710543c0 100644 --- a/drivers/gpu/drm/drm_crtc.c +++ b/drivers/gpu/drm/drm_crtc.c | |||
@@ -34,6 +34,7 @@ | |||
34 | #include "drm.h" | 34 | #include "drm.h" |
35 | #include "drmP.h" | 35 | #include "drmP.h" |
36 | #include "drm_crtc.h" | 36 | #include "drm_crtc.h" |
37 | #include "drm_edid.h" | ||
37 | 38 | ||
38 | struct drm_prop_enum_list { | 39 | struct drm_prop_enum_list { |
39 | int type; | 40 | int type; |
@@ -2350,7 +2351,7 @@ int drm_mode_connector_update_edid_property(struct drm_connector *connector, | |||
2350 | struct edid *edid) | 2351 | struct edid *edid) |
2351 | { | 2352 | { |
2352 | struct drm_device *dev = connector->dev; | 2353 | struct drm_device *dev = connector->dev; |
2353 | int ret = 0; | 2354 | int ret = 0, size; |
2354 | 2355 | ||
2355 | if (connector->edid_blob_ptr) | 2356 | if (connector->edid_blob_ptr) |
2356 | drm_property_destroy_blob(dev, connector->edid_blob_ptr); | 2357 | drm_property_destroy_blob(dev, connector->edid_blob_ptr); |
@@ -2362,7 +2363,9 @@ int drm_mode_connector_update_edid_property(struct drm_connector *connector, | |||
2362 | return ret; | 2363 | return ret; |
2363 | } | 2364 | } |
2364 | 2365 | ||
2365 | connector->edid_blob_ptr = drm_property_create_blob(connector->dev, 128, edid); | 2366 | size = EDID_LENGTH * (1 + edid->extensions); |
2367 | connector->edid_blob_ptr = drm_property_create_blob(connector->dev, | ||
2368 | size, edid); | ||
2366 | 2369 | ||
2367 | ret = drm_connector_property_set_value(connector, | 2370 | ret = drm_connector_property_set_value(connector, |
2368 | dev->mode_config.edid_property, | 2371 | dev->mode_config.edid_property, |