Эх сурвалжийг харах

disp: msm: sde: add danger safe QoS LUT support for WB rotate

This change adds support for updating danger, safe and creq LUT
configuration for WB rotation use case.

Change-Id: I01784be4ea4ac5b027258df2907f3ba745a05850
Signed-off-by: Prabhanjan Kandula <[email protected]>
Prabhanjan Kandula 2 жил өмнө
parent
commit
f518796f9e

+ 3 - 2
msm/sde/sde_encoder_phys_wb.c

@@ -208,7 +208,6 @@ static void sde_encoder_phys_wb_set_qos(struct sde_encoder_phys *phys_enc)
 
 	qos_cfg.danger_safe_en = true;
 	if (usage_type == WB_USAGE_ROT) {
-		qos_cfg.danger_safe_en = false;
 		qos_cfg.qos_mode = SDE_WB_QOS_MODE_DYNAMIC;
 		qos_cfg.bytes_per_clk = sde_connector_get_property(conn_state,
 				CONNECTOR_PROP_WB_ROT_BYTES_PER_CLK);
@@ -218,8 +217,10 @@ static void sde_encoder_phys_wb_set_qos(struct sde_encoder_phys *phys_enc)
 		lut_index = (SDE_FORMAT_IS_TILE(wb_enc->wb_fmt)
 				|| SDE_FORMAT_IS_UBWC(wb_enc->wb_fmt)) ?
 					SDE_QOS_LUT_USAGE_CWB_TILE : SDE_QOS_LUT_USAGE_CWB;
+	else if (usage_type == WB_USAGE_ROT)
+		lut_index = SDE_QOS_LUT_USAGE_WB_ROT;
 	else
-		lut_index = (usage_type == WB_USAGE_OFFLINE_WB || usage_type == WB_USAGE_ROT) ?
+		lut_index = (usage_type == WB_USAGE_OFFLINE_WB) ?
 					SDE_QOS_LUT_USAGE_OFFLINE_WB : SDE_QOS_LUT_USAGE_NRT;
 
 	creq_index = lut_index * SDE_CREQ_LUT_TYPE_MAX;

+ 1 - 0
msm/sde/sde_hw_catalog.h

@@ -941,6 +941,7 @@ enum sde_qos_lut_usage {
 	SDE_QOS_LUT_USAGE_INLINE,
 	SDE_QOS_LUT_USAGE_INLINE_RESTRICTED_FMTS,
 	SDE_QOS_LUT_USAGE_OFFLINE_WB,
+	SDE_QOS_LUT_USAGE_WB_ROT,
 	SDE_QOS_LUT_USAGE_MAX,
 };
 

+ 2 - 1
msm/sde/sde_plane.c

@@ -288,7 +288,8 @@ static void _sde_plane_set_qos_lut(struct drm_plane *plane,
 		else
 			lut_index = SDE_QOS_LUT_USAGE_MACROTILE;
 	} else {
-		lut_index = (psde->wb_usage_type == WB_USAGE_OFFLINE_WB) ?
+		lut_index = (psde->wb_usage_type == WB_USAGE_OFFLINE_WB ||
+				psde->wb_usage_type == WB_USAGE_ROT) ?
 					SDE_QOS_LUT_USAGE_OFFLINE_WB : SDE_QOS_LUT_USAGE_NRT;
 	}