Commit c77b0008 authored by Max Tseng's avatar Max Tseng Committed by Alex Deucher

drm/amd/display: replay: generalize the send command function usage

Augment the function to allow send different format data in different
use case.
Reviewed-by: default avatarDennis Chan <dennis.chan@amd.com>
Acked-by: default avatarHamza Mahfooz <hamza.mahfooz@amd.com>
Signed-off-by: default avatarMax Tseng <max.tseng@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 6c22fb07
......@@ -1029,6 +1029,7 @@ enum replay_coasting_vtotal_type {
* passed to DMUB.
*/
enum replay_FW_Message_type {
Replay_Msg_Not_Support = -1,
Replay_Set_Timing_Sync_Supported,
};
......
......@@ -46,8 +46,7 @@ struct dmub_replay_funcs {
void (*replay_set_power_opt)(struct dmub_replay *dmub, unsigned int power_opt,
uint8_t panel_inst);
void (*replay_send_cmd)(struct dmub_replay *dmub,
enum replay_FW_Message_type msg, unsigned int panel_inst,
uint32_t cmd_data);
enum replay_FW_Message_type msg, unsigned int panel_inst, union dmub_replay_cmd_set *cmd_element);
void (*replay_set_coasting_vtotal)(struct dmub_replay *dmub, uint16_t coasting_vtotal,
uint8_t panel_inst);
void (*replay_residency)(struct dmub_replay *dmub,
......
......@@ -283,7 +283,7 @@ struct link_service {
const struct dc_stream_state *stream);
bool (*edp_send_replay_cmd)(struct dc_link *link,
enum replay_FW_Message_type msg,
uint32_t params);
union dmub_replay_cmd_set *cmd_data);
bool (*edp_set_coasting_vtotal)(
struct dc_link *link, uint16_t coasting_vtotal);
bool (*edp_replay_residency)(const struct dc_link *link,
......
......@@ -1014,7 +1014,7 @@ bool edp_setup_replay(struct dc_link *link, const struct dc_stream_state *stream
*/
bool edp_send_replay_cmd(struct dc_link *link,
enum replay_FW_Message_type msg,
uint32_t cmd_data)
union dmub_replay_cmd_set *cmd_data)
{
struct dc *dc = link->ctx->dc;
struct dmub_replay *replay = dc->res_pool->replay;
......@@ -1026,7 +1026,7 @@ bool edp_send_replay_cmd(struct dc_link *link,
if (!dc_get_edp_link_panel_inst(dc, link, &panel_inst))
return false;
replay->funcs->replay_send_cmd(replay, msg, cmd_data, panel_inst);
replay->funcs->replay_send_cmd(replay, msg, panel_inst, cmd_data);
return true;
}
......
......@@ -59,7 +59,7 @@ bool edp_setup_replay(struct dc_link *link,
const struct dc_stream_state *stream);
bool edp_send_replay_cmd(struct dc_link *link,
enum replay_FW_Message_type msg,
uint32_t params);
union dmub_replay_cmd_set *cmd_data);
bool edp_set_coasting_vtotal(struct dc_link *link, uint16_t coasting_vtotal);
bool edp_replay_residency(const struct dc_link *link,
unsigned int *residency, const bool is_start, const bool is_alpm);
......
......@@ -3143,6 +3143,16 @@ struct dmub_rb_cmd_replay_set_timing_sync {
struct dmub_cmd_replay_set_timing_sync_data replay_set_timing_sync_data;
};
/**
* Definition union of replay command set
*/
union dmub_replay_cmd_set {
/**
* Definition of DMUB_CMD__REPLAY_SET_TIMING_SYNC_SUPPORTED command data.
*/
struct dmub_cmd_replay_set_timing_sync_data sync_data;
};
/**
* Set of HW components that can be locked.
*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment