disp: msm: sde: add support for new QoS mode of WB rotation

This change adds support for new dynamic QoS mode for WB rotation
which is required to achieve rotation output available at required
rate to meet real time use case. Though traffic shaper can be
disabled in dynamic QoS mode, part of traffic shaper algo to track
WB operating speed is enabled and WB generates creq priority
based on current ouput rate compared to targetted ouput to help
meeting real time use case requirement.

Change-Id: I98c2dcae53f1b175dc49b40238b9da33e95717a6
Signed-off-by: Prabhanjan Kandula <quic_pkandula@quicinc.com>
This commit is contained in:
Prabhanjan Kandula
2022-06-23 00:31:38 -07:00
committato da Gerrit - the friendly Code Review server
parent 3128214eac
commit c3991049c1
5 ha cambiato i file con 44 aggiunte e 6 eliminazioni

Vedi File

@@ -23,6 +23,7 @@
#define WB_DST3_ADDR 0x018
#define WB_DST_YSTRIDE0 0x01C
#define WB_DST_YSTRIDE1 0x020
#define WB_TS_WR_CLIENT 0x040
#define WB_DST_WRITE_CONFIG 0x048
#define WB_OUT_SIZE 0x074
#define WB_ALPHA_X_VALUE 0x078
@@ -307,6 +308,11 @@ static void sde_hw_wb_setup_qos_lut(struct sde_hw_wb *ctx,
if (cfg->danger_safe_en)
qos_ctrl |= WB_QOS_CTRL_DANGER_SAFE_EN;
if (test_bit(SDE_WB_LINEAR_ROTATION, &ctx->caps->features)) {
SDE_REG_WRITE(c, WB_TS_WR_CLIENT, cfg->bytes_per_clk & 0xFF);
qos_ctrl |= (cfg->qos_mode << 1);
}
SDE_REG_WRITE(c, WB_QOS_CTRL, qos_ctrl);
}