Commit 548f2125 authored by Robin Chen's avatar Robin Chen Committed by Alex Deucher
Browse files

drm/amd/display: To support sending TPS3 pattern when restoring link



[Why]
Some panels require to use TPS3 pattern to wake up link in PSR mode.

[How]
To add TPS3 selection information in PSR settings command and pass to
DMUB FW.

Reviewed-by: default avatarAnthony Koo <Anthony.Koo@amd.com>
Acked-by: default avatarAnson Jacob <Anson.Jacob@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarRobin Chen <po-tchen@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent ec581edc
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -330,6 +330,15 @@ static bool dmub_psr_copy_settings(struct dmub_psr *dmub,
	copy_settings_data->cmd_version =  DMUB_CMD_PSR_CONTROL_VERSION_1;
	copy_settings_data->panel_inst = panel_inst;

	if (link->fec_state == dc_link_fec_enabled &&
		(!memcmp(link->dpcd_caps.sink_dev_id_str, DP_SINK_DEVICE_STR_ID_1,
			sizeof(link->dpcd_caps.sink_dev_id_str)) ||
		!memcmp(link->dpcd_caps.sink_dev_id_str, DP_SINK_DEVICE_STR_ID_2,
			sizeof(link->dpcd_caps.sink_dev_id_str))))
		copy_settings_data->debug.bitfields.force_wakeup_by_tps3 = 1;
	else
		copy_settings_data->debug.bitfields.force_wakeup_by_tps3 = 0;

	dc_dmub_srv_cmd_queue(dc->dmub_srv, &cmd);
	dc_dmub_srv_cmd_execute(dc->dmub_srv);
	dc_dmub_srv_wait_idle(dc->dmub_srv);
+2 −3
Original line number Diff line number Diff line
@@ -208,10 +208,9 @@ union dmub_psr_debug_flags {
		uint32_t use_hw_lock_mgr : 1;

		/**
		 * Unused.
		 * TODO: Remove.
		 * Use TPS3 signal when restore main link.
		 */
		uint32_t log_line_nums : 1;
		uint32_t force_wakeup_by_tps3 : 1;
	} bitfields;

	/**
+3 −0
Original line number Diff line number Diff line
@@ -117,4 +117,7 @@ struct av_sync_data {
	uint8_t aud_del_ins3;/* DPCD 0002Dh */
};

static const uint8_t DP_SINK_DEVICE_STR_ID_1[] = {7, 1, 8, 7, 3, 0};
static const uint8_t DP_SINK_DEVICE_STR_ID_2[] = {7, 1, 8, 7, 5, 0};

#endif /* __DAL_DDC_SERVICE_TYPES_H__ */