drm/amd/display: Check hdr support before setting.
In case of programing info frame to some monitors don't support HDR, it will result in black screen or corruption when unplug monitor. By checking hdr flag to avoid unnecessary setting for monitors don't support HDR. Signed-off-by: Yongqiang Sun <yongqiang.sun@amd.com> Acked-by: Harry Wentland <Harry.Wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
e66e4d6428
commit
10bff00592
@ -1742,6 +1742,9 @@ static void set_hdr_static_info_packet(
|
||||
|
||||
hdr_metadata = surface->public.hdr_static_ctx;
|
||||
|
||||
if (!hdr_metadata.is_hdr)
|
||||
return;
|
||||
|
||||
if (dc_is_hdmi_signal(signal)) {
|
||||
info_packet->valid = true;
|
||||
|
||||
|
@ -555,18 +555,23 @@ static void dce110_stream_encoder_update_dp_info_packets(
|
||||
struct dce110_stream_encoder *enc110 = DCE110STRENC_FROM_STRENC(enc);
|
||||
uint32_t value = REG_READ(DP_SEC_CNTL);
|
||||
|
||||
dce110_update_generic_info_packet(
|
||||
if (info_frame->vsc.valid)
|
||||
dce110_update_generic_info_packet(
|
||||
enc110,
|
||||
0, /* packetIndex */
|
||||
&info_frame->vsc);
|
||||
|
||||
if (info_frame->spd.valid)
|
||||
dce110_update_generic_info_packet(
|
||||
enc110,
|
||||
0, /* packetIndex */
|
||||
&info_frame->vsc);
|
||||
dce110_update_generic_info_packet(
|
||||
enc110,
|
||||
2, /* packetIndex */
|
||||
&info_frame->spd);
|
||||
dce110_update_generic_info_packet(
|
||||
enc110,
|
||||
3, /* packetIndex */
|
||||
&info_frame->hdrsmd);
|
||||
2, /* packetIndex */
|
||||
&info_frame->spd);
|
||||
|
||||
if (info_frame->hdrsmd.valid)
|
||||
dce110_update_generic_info_packet(
|
||||
enc110,
|
||||
3, /* packetIndex */
|
||||
&info_frame->hdrsmd);
|
||||
|
||||
/* enable/disable transmission of packet(s).
|
||||
* If enabled, packet transmission begins on the next frame
|
||||
|
Loading…
Reference in New Issue
Block a user