Commit 4ddc773b authored by Jani Nikula's avatar Jani Nikula Committed by Dave Airlie

drm/exynos: use drm_edid_duplicate

Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 51f8da59
...@@ -101,7 +101,6 @@ static struct edid *vidi_get_edid(struct device *dev, ...@@ -101,7 +101,6 @@ static struct edid *vidi_get_edid(struct device *dev,
{ {
struct vidi_context *ctx = get_vidi_context(dev); struct vidi_context *ctx = get_vidi_context(dev);
struct edid *edid; struct edid *edid;
int edid_len;
/* /*
* the edid data comes from user side and it would be set * the edid data comes from user side and it would be set
...@@ -112,8 +111,7 @@ static struct edid *vidi_get_edid(struct device *dev, ...@@ -112,8 +111,7 @@ static struct edid *vidi_get_edid(struct device *dev,
return ERR_PTR(-EFAULT); return ERR_PTR(-EFAULT);
} }
edid_len = (1 + ctx->raw_edid->extensions) * EDID_LENGTH; edid = drm_edid_duplicate(ctx->raw_edid);
edid = kmemdup(ctx->raw_edid, edid_len, GFP_KERNEL);
if (!edid) { if (!edid) {
DRM_DEBUG_KMS("failed to allocate edid\n"); DRM_DEBUG_KMS("failed to allocate edid\n");
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
...@@ -485,7 +483,6 @@ int vidi_connection_ioctl(struct drm_device *drm_dev, void *data, ...@@ -485,7 +483,6 @@ int vidi_connection_ioctl(struct drm_device *drm_dev, void *data,
struct exynos_drm_manager *manager; struct exynos_drm_manager *manager;
struct exynos_drm_display_ops *display_ops; struct exynos_drm_display_ops *display_ops;
struct drm_exynos_vidi_connection *vidi = data; struct drm_exynos_vidi_connection *vidi = data;
int edid_len;
if (!vidi) { if (!vidi) {
DRM_DEBUG_KMS("user data for vidi is null.\n"); DRM_DEBUG_KMS("user data for vidi is null.\n");
...@@ -524,8 +521,7 @@ int vidi_connection_ioctl(struct drm_device *drm_dev, void *data, ...@@ -524,8 +521,7 @@ int vidi_connection_ioctl(struct drm_device *drm_dev, void *data,
DRM_DEBUG_KMS("edid data is invalid.\n"); DRM_DEBUG_KMS("edid data is invalid.\n");
return -EINVAL; return -EINVAL;
} }
edid_len = (1 + raw_edid->extensions) * EDID_LENGTH; ctx->raw_edid = drm_edid_duplicate(raw_edid);
ctx->raw_edid = kmemdup(raw_edid, edid_len, GFP_KERNEL);
if (!ctx->raw_edid) { if (!ctx->raw_edid) {
DRM_DEBUG_KMS("failed to allocate raw_edid.\n"); DRM_DEBUG_KMS("failed to allocate raw_edid.\n");
return -ENOMEM; return -ENOMEM;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment