Skip to content

Commit abba907

Browse files
anthony-koo2alexdeucher
authored andcommitted
drm/amd/display: Switch to immediate mode for updating infopackets
[Why] Using FRAME_UPDATE will result in infopacket to be potentially updated one frame late. In commit stream scenarios for previously active stream, some stale infopacket data from previous config might be erroneously sent out on initial frame after stream is re-enabled. [How] Switch to using IMMEDIATE_UPDATE mode Signed-off-by: Anthony Koo <[email protected]> Reviewed-by: Ashley Thomas <[email protected]> Acked-by: Qingqing Zhuo <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent e4ed4db commit abba907

File tree

2 files changed

+22
-8
lines changed

2 files changed

+22
-8
lines changed

drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -121,35 +121,35 @@ void enc1_update_generic_info_packet(
121121
switch (packet_index) {
122122
case 0:
123123
REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
124-
AFMT_GENERIC0_FRAME_UPDATE, 1);
124+
AFMT_GENERIC0_IMMEDIATE_UPDATE, 1);
125125
break;
126126
case 1:
127127
REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
128-
AFMT_GENERIC1_FRAME_UPDATE, 1);
128+
AFMT_GENERIC1_IMMEDIATE_UPDATE, 1);
129129
break;
130130
case 2:
131131
REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
132-
AFMT_GENERIC2_FRAME_UPDATE, 1);
132+
AFMT_GENERIC2_IMMEDIATE_UPDATE, 1);
133133
break;
134134
case 3:
135135
REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
136-
AFMT_GENERIC3_FRAME_UPDATE, 1);
136+
AFMT_GENERIC3_IMMEDIATE_UPDATE, 1);
137137
break;
138138
case 4:
139139
REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
140-
AFMT_GENERIC4_FRAME_UPDATE, 1);
140+
AFMT_GENERIC4_IMMEDIATE_UPDATE, 1);
141141
break;
142142
case 5:
143143
REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
144-
AFMT_GENERIC5_FRAME_UPDATE, 1);
144+
AFMT_GENERIC5_IMMEDIATE_UPDATE, 1);
145145
break;
146146
case 6:
147147
REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
148-
AFMT_GENERIC6_FRAME_UPDATE, 1);
148+
AFMT_GENERIC6_IMMEDIATE_UPDATE, 1);
149149
break;
150150
case 7:
151151
REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
152-
AFMT_GENERIC7_FRAME_UPDATE, 1);
152+
AFMT_GENERIC7_IMMEDIATE_UPDATE, 1);
153153
break;
154154
default:
155155
break;

drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,14 @@ struct dcn10_stream_enc_registers {
281281
SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC2_FRAME_UPDATE, mask_sh),\
282282
SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC3_FRAME_UPDATE, mask_sh),\
283283
SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC4_FRAME_UPDATE, mask_sh),\
284+
SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC0_IMMEDIATE_UPDATE, mask_sh),\
285+
SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC1_IMMEDIATE_UPDATE, mask_sh),\
286+
SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC2_IMMEDIATE_UPDATE, mask_sh),\
287+
SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC3_IMMEDIATE_UPDATE, mask_sh),\
284288
SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC4_IMMEDIATE_UPDATE, mask_sh),\
289+
SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC5_IMMEDIATE_UPDATE, mask_sh),\
290+
SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC6_IMMEDIATE_UPDATE, mask_sh),\
291+
SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC7_IMMEDIATE_UPDATE, mask_sh),\
285292
SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC5_FRAME_UPDATE, mask_sh),\
286293
SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC6_FRAME_UPDATE, mask_sh),\
287294
SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC7_FRAME_UPDATE, mask_sh),\
@@ -345,7 +352,14 @@ struct dcn10_stream_enc_registers {
345352
type AFMT_GENERIC2_FRAME_UPDATE;\
346353
type AFMT_GENERIC3_FRAME_UPDATE;\
347354
type AFMT_GENERIC4_FRAME_UPDATE;\
355+
type AFMT_GENERIC0_IMMEDIATE_UPDATE;\
356+
type AFMT_GENERIC1_IMMEDIATE_UPDATE;\
357+
type AFMT_GENERIC2_IMMEDIATE_UPDATE;\
358+
type AFMT_GENERIC3_IMMEDIATE_UPDATE;\
348359
type AFMT_GENERIC4_IMMEDIATE_UPDATE;\
360+
type AFMT_GENERIC5_IMMEDIATE_UPDATE;\
361+
type AFMT_GENERIC6_IMMEDIATE_UPDATE;\
362+
type AFMT_GENERIC7_IMMEDIATE_UPDATE;\
349363
type AFMT_GENERIC5_FRAME_UPDATE;\
350364
type AFMT_GENERIC6_FRAME_UPDATE;\
351365
type AFMT_GENERIC7_FRAME_UPDATE;\

0 commit comments

Comments
 (0)