浏览代码

Merge "disp: msm: dp: ensure failsafe mode in connector mode list"

qctecmdr 1 年之前
父节点
当前提交
51dd6ab862
共有 2 个文件被更改,包括 10 次插入0 次删除
  1. 5 0
      msm/dp/dp_drm.c
  2. 5 0
      msm/dp/dp_mst_drm.c

+ 5 - 0
msm/dp/dp_drm.c

@@ -726,12 +726,17 @@ enum drm_mode_status dp_connector_mode_valid(struct drm_connector *connector,
 		return MODE_ERROR;
 	}
 
+	/* As per spec, failsafe mode should always be present */
+	if ((mode->hdisplay == 640) && (mode->vdisplay == 480) && (mode->clock == 25175))
+		goto validate_mode;
+
 	if (dp_panel->mode_override && (mode->hdisplay != dp_panel->hdisplay ||
 			mode->vdisplay != dp_panel->vdisplay ||
 			vrefresh != dp_panel->vrefresh ||
 			mode->picture_aspect_ratio != dp_panel->aspect_ratio))
 		return MODE_BAD;
 
+validate_mode:
 	return dp_disp->validate_mode(dp_disp, sde_conn->drv_panel,
 			mode, &avail_dp_res);
 }

+ 5 - 0
msm/dp/dp_mst_drm.c

@@ -1309,6 +1309,10 @@ enum drm_mode_status dp_mst_connector_mode_valid(
 
 	vrefresh = drm_mode_vrefresh(mode);
 
+	/* As per spec, failsafe mode should always be present */
+	if ((mode->hdisplay == 640) && (mode->vdisplay == 480) && (mode->clock == 25175))
+		goto validate_mode;
+
 	if (dp_panel->mode_override && (mode->hdisplay != dp_panel->hdisplay ||
 			mode->vdisplay != dp_panel->vdisplay ||
 			vrefresh != dp_panel->vrefresh ||
@@ -1347,6 +1351,7 @@ enum drm_mode_status dp_mst_connector_mode_valid(
 		return MODE_BAD;
 	}
 
+validate_mode:
 	return dp_display->validate_mode(dp_display, dp_panel, mode, avail_res);
 }