Skip to content

Commit 5acacec

Browse files
Dennis.Chanalexdeucher
authored andcommitted
drm/amd/display: Implement Replay Low Hz Visual Confirm
[why] Add new Visual confirm color for Replay Low Hz. Reviewed-by: Robin Chen <[email protected]> Signed-off-by: Dennis.Chan <[email protected]> Signed-off-by: Roman Li <[email protected]> Tested-by: Daniel Wheeler <[email protected]> Signed-off-by: Alex Deucher <[email protected]>
1 parent 9eaf3ab commit 5acacec

File tree

3 files changed

+72
-5
lines changed

3 files changed

+72
-5
lines changed

drivers/gpu/drm/amd/display/dc/dc_types.h

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1066,10 +1066,13 @@ enum replay_FW_Message_type {
10661066

10671067
union replay_error_status {
10681068
struct {
1069-
unsigned char STATE_TRANSITION_ERROR :1;
1070-
unsigned char LINK_CRC_ERROR :1;
1071-
unsigned char DESYNC_ERROR :1;
1072-
unsigned char RESERVED :5;
1069+
unsigned int STATE_TRANSITION_ERROR :1;
1070+
unsigned int LINK_CRC_ERROR :1;
1071+
unsigned int DESYNC_ERROR :1;
1072+
unsigned int RESERVED_3 :1;
1073+
unsigned int LOW_RR_INCORRECT_VTOTAL :1;
1074+
unsigned int NO_DOUBLED_RR :1;
1075+
unsigned int RESERVED_6_7 :2;
10731076
} bits;
10741077
unsigned char raw;
10751078
};

drivers/gpu/drm/amd/display/dc/link/protocols/link_dp_irq_handler.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,8 @@ static void handle_hpd_irq_replay_sink(struct dc_link *link)
226226
replay_configuration.bits.STATE_TRANSITION_ERROR_STATUS) {
227227
bool allow_active;
228228

229+
link->replay_settings.config.replay_error_status.raw |= replay_error_status.raw;
230+
229231
if (link->replay_settings.config.force_disable_desync_error_check)
230232
return;
231233

drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h

Lines changed: 63 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,67 @@ union replay_debug_flags {
431431
*/
432432
uint32_t enable_ips_residency_profiling : 1;
433433

434-
uint32_t reserved : 20;
434+
/**
435+
* 0x1000 (bit 12)
436+
* @enable_coasting_vtotal_check: Enable Coasting_vtotal_check
437+
*/
438+
uint32_t enable_coasting_vtotal_check : 1;
439+
440+
uint32_t reserved : 19;
441+
} bitfields;
442+
443+
uint32_t u32All;
444+
};
445+
446+
/**
447+
* Flags record error state.
448+
*/
449+
union replay_error_state_flags {
450+
struct {
451+
/**
452+
* 0x1 (bit 0) - Desync Error flag.
453+
*/
454+
uint32_t desync_error : 1;
455+
456+
/**
457+
* 0x2 (bit 1) - State Transition Error flag.
458+
*/
459+
uint32_t state_transition_error : 1;
460+
461+
/**
462+
* 0x4 (bit 2) - Crc Error flag
463+
*/
464+
uint32_t crc_error : 1;
465+
466+
/**
467+
* 0x8 (bit 3) - Reserved
468+
*/
469+
uint32_t reserved_3 : 1;
470+
471+
/**
472+
* 0x10 (bit 4) - Incorrect Coasting vtotal checking --> use debug flag to control DPCD write.
473+
* Added new debug flag to control DPCD.
474+
*/
475+
uint32_t incorrect_vtotal_in_static_screen : 1;
476+
477+
/**
478+
* 0x20 (bit 5) - No doubled Refresh Rate.
479+
*/
480+
uint32_t no_double_rr : 1;
481+
482+
/**
483+
* Reserved bit 6-7
484+
*/
485+
uint32_t reserved_6_7 : 2;
486+
/**
487+
* 0x100 (bit 8) - DQE Only.
488+
*/
489+
uint32_t pass_low_hz : 1;
490+
491+
/**
492+
* Reserved bit 9-31
493+
*/
494+
uint32_t reserved_9_31 : 23;
435495
} bitfields;
436496

437497
uint32_t u32All;
@@ -3644,6 +3704,8 @@ enum dmub_cmd_replay_general_subtype {
36443704
*/
36453705
REPLAY_GENERAL_CMD_DISABLED_ADAPTIVE_SYNC_SDP,
36463706
REPLAY_GENERAL_CMD_DISABLED_DESYNC_ERROR_DETECTION,
3707+
REPLAY_GENERAL_CMD_UPDATE_ERROR_STATUS,
3708+
REPLAY_GENERAL_CMD_SET_LOW_RR_ACTIVATE,
36473709
};
36483710

36493711
/**

0 commit comments

Comments
 (0)