drm/amd/display: Replay + IPS + ABM in Full Screen VPB
authorChunTao Tso <ChunTao.Tso@amd.com>
Mon, 8 Jan 2024 05:46:59 +0000 (13:46 +0800)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 14 Jun 2024 20:17:13 +0000 (16:17 -0400)
[Why]
Because ABM will wait VStart to start getting histogram data, it will
cause we can't enter IPS while full screnn video playing.

[How]
Modify the panel refresh rate to the maximun multiple of current refresh
rate

Reviewed-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: ChunTao Tso <ChunTao.Tso@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dce/dmub_replay.c

index be27ab7ef2da32ab44862b581854ec16d47c67f5..958a927d0ceaaa8b813d37c28ae72c3e712ecbfc 100644 (file)
@@ -350,6 +350,18 @@ static void dmub_replay_send_cmd(struct dmub_replay *dmub,
                cmd.replay_set_frameupdate_timer.data.frameupdate_count =
                                                cmd_element->timer_data.frameupdate_count;
                break;
+       case Replay_Set_Pseudo_VTotal:
+               //Header
+               cmd.replay_set_pseudo_vtotal.header.sub_type =
+                       DMUB_CMD__REPLAY_SET_PSEUDO_VTOTAL;
+               cmd.replay_set_pseudo_vtotal.header.payload_bytes =
+                       sizeof(struct dmub_rb_cmd_replay_set_pseudo_vtotal);
+               //Cmd Body
+               cmd.replay_set_pseudo_vtotal.data.panel_inst =
+                       cmd_element->pseudo_vtotal_data.panel_inst;
+               cmd.replay_set_pseudo_vtotal.data.vtotal =
+                       cmd_element->pseudo_vtotal_data.vtotal;
+               break;
        case Replay_Msg_Not_Support:
        default:
                return;