mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-16 00:34:20 +08:00
drm/amd/display: Program VSC SDP colorimetry for all DP sinks >= 1.4
In order for display colorimetry to work correctly on DP displays we need to send the VSC SDP packet. We should only do so for panels with DPCD revision greater or equal to 1.4 as older receivers might have problems with it. Cc: stable@vger.kernel.org Cc: Joshua Ashton <joshua@froggi.es> Cc: Xaver Hugl <xaver.hugl@gmail.com> Cc: Melissa Wen <mwen@igalia.com> Cc: Agustin Gutierrez <Agustin.Gutierrez@amd.com> Reviewed-by: Agustin Gutierrez <agustin.gutierrez@amd.com> Acked-by: Hamza Mahfooz <hamza.mahfooz@amd.com> Signed-off-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
cf79814cb0
commit
9e61ef8d21
@ -6318,7 +6318,9 @@ create_stream_for_sink(struct drm_connector *connector,
|
|||||||
if (stream->signal == SIGNAL_TYPE_HDMI_TYPE_A)
|
if (stream->signal == SIGNAL_TYPE_HDMI_TYPE_A)
|
||||||
mod_build_hf_vsif_infopacket(stream, &stream->vsp_infopacket);
|
mod_build_hf_vsif_infopacket(stream, &stream->vsp_infopacket);
|
||||||
|
|
||||||
if (stream->link->psr_settings.psr_feature_enabled || stream->link->replay_settings.replay_feature_enabled) {
|
if (stream->signal == SIGNAL_TYPE_DISPLAY_PORT ||
|
||||||
|
stream->signal == SIGNAL_TYPE_DISPLAY_PORT_MST ||
|
||||||
|
stream->signal == SIGNAL_TYPE_EDP) {
|
||||||
//
|
//
|
||||||
// should decide stream support vsc sdp colorimetry capability
|
// should decide stream support vsc sdp colorimetry capability
|
||||||
// before building vsc info packet
|
// before building vsc info packet
|
||||||
@ -6328,7 +6330,8 @@ create_stream_for_sink(struct drm_connector *connector,
|
|||||||
stream->use_vsc_sdp_for_colorimetry =
|
stream->use_vsc_sdp_for_colorimetry =
|
||||||
aconnector->dc_sink->is_vsc_sdp_colorimetry_supported;
|
aconnector->dc_sink->is_vsc_sdp_colorimetry_supported;
|
||||||
} else {
|
} else {
|
||||||
if (stream->link->dpcd_caps.dprx_feature.bits.VSC_SDP_COLORIMETRY_SUPPORTED)
|
if (stream->link->dpcd_caps.dpcd_rev.raw >= 0x14 &&
|
||||||
|
stream->link->dpcd_caps.dprx_feature.bits.VSC_SDP_COLORIMETRY_SUPPORTED)
|
||||||
stream->use_vsc_sdp_for_colorimetry = true;
|
stream->use_vsc_sdp_for_colorimetry = true;
|
||||||
}
|
}
|
||||||
if (stream->out_transfer_func->tf == TRANSFER_FUNCTION_GAMMA22)
|
if (stream->out_transfer_func->tf == TRANSFER_FUNCTION_GAMMA22)
|
||||||
|
Loading…
Reference in New Issue
Block a user