disp: msm: dp: fix DSC and PPS version mismatch
Currently, driver hardcodes the DSC version to use to v1.1 in DP driver even if the sink reports v1.2 in the DPCD DSC_ALGORITHM_REVISISON register. This causes a mismatch between the source DSC hardware programming and the PPS packet information sent to sink. This change sets the PPS DSC version field to the one reported by the sink and falls back to v1.1 in case of DPCD parsing error. Change-Id: I76fb55b7bf9b3925ae3f408008f3257fc85cef2c Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
这个提交包含在:

提交者
Gerrit - the friendly Code Review server

父节点
a2a3c5e864
当前提交
7a9e08de70
@@ -1357,9 +1357,28 @@ static int dp_panel_dsc_prepare_basic_params(
|
||||
u32 ppr_per_slice;
|
||||
u32 slice_caps_1;
|
||||
u32 slice_caps_2;
|
||||
u32 dsc_version_major, dsc_version_minor;
|
||||
bool dsc_version_supported = false;
|
||||
|
||||
comp_info->dsc_info.config.dsc_version_major = 0x1;
|
||||
comp_info->dsc_info.config.dsc_version_minor = 0x1;
|
||||
dsc_version_major = dp_panel->sink_dsc_caps.version & 0xF;
|
||||
dsc_version_minor = (dp_panel->sink_dsc_caps.version >> 4) & 0xF;
|
||||
dsc_version_supported = (dsc_version_major == 0x1 &&
|
||||
(dsc_version_minor == 0x1 || dsc_version_minor == 0x2))
|
||||
? true : false;
|
||||
|
||||
DP_DEBUG("DSC version: %d.%d, dpcd value: %x\n",
|
||||
dsc_version_major, dsc_version_minor,
|
||||
dp_panel->sink_dsc_caps.version);
|
||||
|
||||
if (!dsc_version_supported) {
|
||||
dsc_version_major = 1;
|
||||
dsc_version_minor = 1;
|
||||
DP_ERR("invalid sink DSC version, fallback to %d.%d\n",
|
||||
dsc_version_major, dsc_version_minor);
|
||||
}
|
||||
|
||||
comp_info->dsc_info.config.dsc_version_major = dsc_version_major;
|
||||
comp_info->dsc_info.config.dsc_version_minor = dsc_version_minor;
|
||||
comp_info->dsc_info.scr_rev = 0x0;
|
||||
|
||||
comp_info->dsc_info.slice_per_pkt = 0;
|
||||
|
在新工单中引用
屏蔽一个用户