disp: msm: dp: add qos vote during hdcp authentication

HDCP authentication has strict timing requirements and if the
display is on static screen during this time, it is possible
that SDE removes the QOS vote when it detects static display,
thereby affecting the hdcp authentication process.

This change adds qos support in dp driver to vote exclusively
for DP. If valid QOS settings are provided in dtsi, then the
driver adds the vote when it starts authentication and removes
the vote when authentication is completed.

Change-Id: I1d8bc098d0857b13fdf1ca089b6dd2d3f381bdb8
Signed-off-by: Rajkumar Subbiah <quic_rsubbia@quicinc.com>
This commit is contained in:
Rajkumar Subbiah
2021-11-01 19:18:33 -04:00
parent 84973878ad
commit 6c8c95f99e
3 changed files with 64 additions and 1 deletions

View File

@@ -742,6 +742,26 @@ static void dp_parser_dsc(struct dp_parser *parser)
parser->dsc_continuous_pps);
}
static void dp_parser_qos(struct dp_parser *parser)
{
struct device *dev = &parser->pdev->dev;
u32 mask, latency;
int rc;
rc = of_property_read_u32(dev->of_node, "qcom,qos-cpu-latency-us", &latency);
if (rc)
return;
rc = of_property_read_u32(dev->of_node, "qcom,qos-cpu-mask", &mask);
if (rc)
return;
parser->qos_cpu_mask = mask;
parser->qos_cpu_latency = latency;
DP_DEBUG("qos parsing successful. mask:%x latency:%ld\n", mask, latency);
}
static void dp_parser_fec(struct dp_parser *parser)
{
struct device *dev = &parser->pdev->dev;
@@ -817,6 +837,7 @@ static int dp_parser_parse(struct dp_parser *parser)
dp_parser_dsc(parser);
dp_parser_fec(parser);
dp_parser_widebus(parser);
dp_parser_qos(parser);
err:
return rc;
}