Commit 7aba117a authored by Jarif Aftab's avatar Jarif Aftab Committed by Alex Deucher
Browse files

drm/amd/display: Disabled seamless boots on DP and renamed power_down_display_on_boot



[WHY]
- We only ever want seamless boots on eDPs
- The naming and logic did not match the context

[HOW]
- Removed unnecessary if statements
- Renamed power_down_display_on_boot to seamless_boot_edp_requested and
swapped the logic

Reviewed-by: default avatarMartin Leung <Martin.Leung@amd.com>
Acked-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
Signed-off-by: default avatarJarif Aftab <jaraftab@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 47f29ac1
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1496,10 +1496,10 @@ static int amdgpu_dm_init(struct amdgpu_device *adev)
		init_data.flags.allow_lttpr_non_transparent_mode.bits.DP2_0 = true;
#endif

	init_data.flags.power_down_display_on_boot = true;
	init_data.flags.seamless_boot_edp_requested = false;

	if (check_seamless_boot_capability(adev)) {
		init_data.flags.power_down_display_on_boot = false;
		init_data.flags.seamless_boot_edp_requested = true;
		init_data.flags.allow_seamless_boot_optimization = true;
		DRM_INFO("Seamless boot condition check passed\n");
	}
+0 −12
Original line number Diff line number Diff line
@@ -1019,18 +1019,6 @@ static bool dc_link_detect_helper(struct dc_link *link,
					link->type != dc_connection_mst_branch)
				dm_helpers_dp_mst_stop_top_mgr(link->ctx, link);


			// For seamless boot, to skip verify link cap, we read UEFI settings and set them as verified.
			if (reason == DETECT_REASON_BOOT &&
					!dc_ctx->dc->config.power_down_display_on_boot &&
					link->link_status.link_active)
				perform_dp_seamless_boot = true;

			if (perform_dp_seamless_boot) {
				read_current_link_settings_on_detect(link);
				link->verified_link_cap = link->reported_link_cap;
			}

			break;
		}

+1 −1
Original line number Diff line number Diff line
@@ -322,7 +322,7 @@ struct dc_config {
	bool fbc_support;
	bool disable_fractional_pwm;
	bool allow_seamless_boot_optimization;
	bool power_down_display_on_boot;
	bool seamless_boot_edp_requested;
	bool edp_not_connected;
	bool edp_no_power_sequencing;
	bool force_enum_edp;
+2 −3
Original line number Diff line number Diff line
@@ -1505,7 +1505,6 @@ void dcn10_init_hw(struct dc *dc)
		dmub_enable_outbox_notification(dc);

	/* we want to turn off all dp displays before doing detection */
	if (dc->config.power_down_display_on_boot)
	dc_link_blank_all_dp_displays(dc);

	/* If taking control over from VBIOS, we may want to optimize our first
@@ -1514,7 +1513,7 @@ void dcn10_init_hw(struct dc *dc)
	 * Otherwise, if taking control is not possible, we need to power
	 * everything down.
	 */
	if (dcb->funcs->is_accelerated_mode(dcb) || dc->config.power_down_display_on_boot) {
	if (dcb->funcs->is_accelerated_mode(dcb) || !dc->config.seamless_boot_edp_requested) {
		if (!is_optimized_init_done) {
			hws->funcs.init_pipes(dc, dc->current_state);
			if (dc->res_pool->hubbub->funcs->allow_self_refresh_control)
+3 −4
Original line number Diff line number Diff line
@@ -545,7 +545,6 @@ void dcn30_init_hw(struct dc *dc)
			hws->funcs.dsc_pg_control(hws, res_pool->dscs[i]->inst, false);

	/* we want to turn off all dp displays before doing detection */
	if (dc->config.power_down_display_on_boot)
	dc_link_blank_all_dp_displays(dc);

	/* If taking control over from VBIOS, we may want to optimize our first
@@ -554,7 +553,7 @@ void dcn30_init_hw(struct dc *dc)
	 * Otherwise, if taking control is not possible, we need to power
	 * everything down.
	 */
	if (dcb->funcs->is_accelerated_mode(dcb) || dc->config.power_down_display_on_boot) {
	if (dcb->funcs->is_accelerated_mode(dcb) || !dc->config.seamless_boot_edp_requested) {
		hws->funcs.init_pipes(dc, dc->current_state);
		if (dc->res_pool->hubbub->funcs->allow_self_refresh_control)
			dc->res_pool->hubbub->funcs->allow_self_refresh_control(dc->res_pool->hubbub,
@@ -566,7 +565,7 @@ void dcn30_init_hw(struct dc *dc)
	 * To avoid this, power down hardware on boot
	 * if DIG is turned on and seamless boot not enabled
	 */
	if (dc->config.power_down_display_on_boot) {
	if (!dc->config.seamless_boot_edp_requested) {
		struct dc_link *edp_links[MAX_NUM_EDP];
		struct dc_link *edp_link = NULL;

Loading