Commit c5bc8c1b authored by Wesley Chalmers's avatar Wesley Chalmers Committed by Alex Deucher
Browse files

drm/amd/display: Read LTTPR caps first on bootup



[WHY]
SCR for DP 2.0 requires that LTTPR caps be read first on hotplug.
For the sake of consistency, this should also be the case on bootup.

Signed-off-by: default avatarWesley Chalmers <Wesley.Chalmers@amd.com>
Reviewed-by: default avatarJun Lei <Jun.Lei@amd.com>
Acked-by: default avatarAnson Jacob <Anson.Jacob@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent ee9b1992
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@
#include "dce/dmub_hw_lock_mgr.h"
#include "dc_trace.h"
#include "dce/dmub_outbox.h"
#include "inc/dc_link_dp.h"

#define DC_LOGGER_INIT(logger)

@@ -1403,6 +1404,9 @@ void dcn10_init_hw(struct dc *dc)
			if (dc->links[i]->connector_signal != SIGNAL_TYPE_DISPLAY_PORT)
				continue;

			/* DP 2.0 requires that LTTPR Caps be read first */
			dp_retrieve_lttpr_cap(dc->links[i]);

			/*
			 * If any of the displays are lit up turn them off.
			 * The reason is that some MST hubs cannot be turned off
+3 −0
Original line number Diff line number Diff line
@@ -48,6 +48,7 @@
#include "dc_dmub_srv.h"
#include "link_hwss.h"
#include "dpcd_defs.h"
#include "inc/dc_link_dp.h"



@@ -529,6 +530,8 @@ void dcn30_init_hw(struct dc *dc)
		for (i = 0; i < dc->link_count; i++) {
			if (dc->links[i]->connector_signal != SIGNAL_TYPE_DISPLAY_PORT)
				continue;
			/* DP 2.0 states that LTTPR regs must be read first */
			dp_retrieve_lttpr_cap(dc->links[i]);

			/* if any of the displays are lit up turn them off */
			status = core_link_read_dpcd(dc->links[i], DP_SET_POWER,
+1 −0
Original line number Diff line number Diff line
@@ -190,4 +190,5 @@ enum dc_status dpcd_configure_lttpr_mode(
		struct link_training_settings *lt_settings);

enum dp_link_encoding dp_get_link_encoding_format(const struct dc_link_settings *link_settings);
bool dp_retrieve_lttpr_cap(struct dc_link *link);
#endif /* __DC_LINK_DP_H__ */