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 <quic_pkandula@quicinc.com>
Tento commit je obsažen v:
Prabhanjan Kandula
2022-10-26 08:15:36 -07:00
odevzdal Gerrit - the friendly Code Review server
rodič 3e0575903c
revize f518796f9e
3 změnil soubory, kde provedl 6 přidání a 3 odebrání

Zobrazit soubor

@@ -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;

Zobrazit soubor

@@ -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,
};

Zobrazit soubor

@@ -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;
}