提交 e24ff467 编写于 作者: S Shixin Zeng 提交者: Daniel Vetter

drm/crtc: Fix edid length computation

The length of each EDID block is EDID_LENGTH, and number of blocks is
(1 + edid->extensions) - we need to multiply not add them.

This causes wrong EDID to be passed on, and is a regression introduced
by d2ed3436 (drm: Introduce helper for replacing blob properties)
Signed-off-by: NShixin Zeng <zeng.shixin@gmail.com>
Cc: Daniel Stone <daniels@collabora.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Reviewed-by: NDaniel Stone <daniels@collabora.com>
[danvet: Add Cc: and fix commit summary.]
Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
上级 8b72ce15
...@@ -4732,7 +4732,7 @@ int drm_mode_connector_update_edid_property(struct drm_connector *connector, ...@@ -4732,7 +4732,7 @@ int drm_mode_connector_update_edid_property(struct drm_connector *connector,
return 0; return 0;
if (edid) if (edid)
size = EDID_LENGTH + (1 + edid->extensions); size = EDID_LENGTH * (1 + edid->extensions);
ret = drm_property_replace_global_blob(dev, ret = drm_property_replace_global_blob(dev,
&connector->edid_blob_ptr, &connector->edid_blob_ptr,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册