]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amd/display: Add option to disable PHY SSC reduction on transmitter enable
authorMuhammad Ahmed <Muhammad.Ahmed@amd.com>
Tue, 27 May 2025 16:01:41 +0000 (12:01 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 18 Jun 2025 16:19:16 +0000 (12:19 -0400)
[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: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
Signed-off-by: Muhammad Ahmed <Muhammad.Ahmed@amd.com>
Signed-off-by: Alex Hung <alex.hung@amd.com>
Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/bios/command_table2.c
drivers/gpu/drm/amd/display/dc/dc.h
drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h

index 2c645dffec185afef5884551f5fa434d26207f92..f2b1720a6a66006e62c82891fa127ff9fea376b2 100644 (file)
@@ -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
index 33209e056a0ba1d892869c99713e405ce60a6341..d57c57cabd4d39ea62679b0189963b5a268a07fc 100644 (file)
@@ -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;
index 4cdc75adadb2bc1e5418fdf4bfdde331d49083c5..75e08efc582d5681fb43c00c46c6e6dd3db36f14 100644 (file)
@@ -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 */
 };