|
@@ -521,7 +521,6 @@ int vidi_connection_ioctl(struct drm_device *drm_dev, void *data,
|
|
|
struct exynos_drm_manager *manager;
|
|
|
struct exynos_drm_display_ops *display_ops;
|
|
|
struct drm_exynos_vidi_connection *vidi = data;
|
|
|
- struct edid *raw_edid;
|
|
|
int edid_len;
|
|
|
|
|
|
DRM_DEBUG_KMS("%s\n", __FILE__);
|
|
@@ -558,11 +557,11 @@ int vidi_connection_ioctl(struct drm_device *drm_dev, void *data,
|
|
|
}
|
|
|
|
|
|
if (vidi->connection) {
|
|
|
- if (!vidi->edid) {
|
|
|
- DRM_DEBUG_KMS("edid data is null.\n");
|
|
|
+ struct edid *raw_edid = (struct edid *)(uint32_t)vidi->edid;
|
|
|
+ if (!drm_edid_is_valid(raw_edid)) {
|
|
|
+ DRM_DEBUG_KMS("edid data is invalid.\n");
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
- raw_edid = (struct edid *)(uint32_t)vidi->edid;
|
|
|
edid_len = (1 + raw_edid->extensions) * EDID_LENGTH;
|
|
|
ctx->raw_edid = kzalloc(edid_len, GFP_KERNEL);
|
|
|
if (!ctx->raw_edid) {
|