Commit 5fa62c87 authored by Muhammad Ahmed's avatar Muhammad Ahmed Committed by Alex Deucher
Browse files

drm/amd/display: Add option to disable PHY SSC reduction on transmitter enable



[WHY]
On some 8k display models flickering or black screens may occur at reduced
PHY SSC.

[HOW]
Add an option to set a workaround bit for these displays to keep the old
SSC value.

Reviewed-by: default avatarNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Signed-off-by: default avatarMuhammad Ahmed <Muhammad.Ahmed@amd.com>
Signed-off-by: default avatarAlex Hung <alex.hung@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 90bc60ce
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -396,6 +396,7 @@ static enum bp_result transmitter_control_v1_7(
				process_phy_transition_init_params.display_port_link_rate   = link->cur_link_settings.link_rate;
				process_phy_transition_init_params.transition_bitmask       = link->phy_transition_bitmask;
			}
			dig_v1_7.skip_phy_ssc_reduction = link->wa_flags.skip_phy_ssc_reduction;
		}

		// Handle PRE_OFF_TO_ON: Process ACPI PHY Transition Interlock
+1 −0
Original line number Diff line number Diff line
@@ -1609,6 +1609,7 @@ struct dc_scratch_space {
		bool blank_stream_on_ocs_change;
		bool read_dpcd204h_on_irq_hpd;
		bool force_dp_ffe_preset;
		bool skip_phy_ssc_reduction;
	} wa_flags;
	union dc_dp_ffe_preset forced_dp_ffe_preset;
	struct link_mst_stream_allocation_table mst_stream_alloc_table;
+2 −1
Original line number Diff line number Diff line
@@ -2494,7 +2494,8 @@ struct dmub_dig_transmitter_control_data_v1_7 {
	uint8_t connobj_id; /**< Connector Object Id defined in ObjectId.h */
	uint8_t HPO_instance; /**< HPO instance (0: inst0, 1: inst1) */
	uint8_t reserved1; /**< For future use */
	uint8_t reserved2[3]; /**< For future use */
	uint8_t skip_phy_ssc_reduction;
	uint8_t reserved2[2]; /**< For future use */
	uint32_t reserved3[11]; /**< For future use */
};