This reverts commit 0bb91bed82d414447f2e56030d918def6383c026.

This commit breaks stable kernels older than 6.18 that are booted with
radeon.si_support=0 amdgpu.si_support=1 amdgpu.dc=1

In 6.17, threre are further commits that are needed to get the DC
codepath in amdgpu for Southern Islands GPUs working but they seem to be
too much of a hastle to backport cleanly. The simplest solution is to
revert this problematic commit

Cc: Timur Kristóf <[email protected]>
Cc: Alex Deucher <[email protected]>
Signed-off-by: Rosen Penev <[email protected]>
---
 drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c | 31 ----------------------
 1 file changed, 31 deletions(-)

diff --git a/drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c 
b/drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c
index 05eaa06dfa34..c4386c86153b 100644
--- a/drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c
+++ b/drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c
@@ -3426,14 +3426,12 @@ static void si_apply_state_adjust_rules(struct 
amdgpu_device *adev,
 {
        struct  si_ps *ps = si_get_ps(rps);
        struct amdgpu_clock_and_voltage_limits *max_limits;
-       struct amdgpu_connector *conn;
        bool disable_mclk_switching = false;
        bool disable_sclk_switching = false;
        u32 mclk, sclk;
        u16 vddc, vddci, min_vce_voltage = 0;
        u32 max_sclk_vddc, max_mclk_vddci, max_mclk_vddc;
        u32 max_sclk = 0, max_mclk = 0;
-       u32 high_pixelclock_count = 0;
        int i;
 
        if (adev->asic_type == CHIP_HAINAN) {
@@ -3466,35 +3464,6 @@ static void si_apply_state_adjust_rules(struct 
amdgpu_device *adev,
                }
        }
 
-       /* We define "high pixelclock" for SI as higher than necessary for 4K 
30Hz.
-        * For example, 4K 60Hz and 1080p 144Hz fall into this category.
-        * Find number of such displays connected.
-        */
-       for (i = 0; i < adev->mode_info.num_crtc; i++) {
-               if (!(adev->pm.dpm.new_active_crtcs & (1 << i)) ||
-                       !adev->mode_info.crtcs[i]->enabled)
-                       continue;
-
-               conn = to_amdgpu_connector(adev->mode_info.crtcs[i]->connector);
-
-               if (conn->pixelclock_for_modeset > 297000)
-                       high_pixelclock_count++;
-       }
-
-       /* These are some ad-hoc fixes to some issues observed with SI GPUs.
-        * They are necessary because we don't have something like dce_calcs
-        * for these GPUs to calculate bandwidth requirements.
-        */
-       if (high_pixelclock_count) {
-               /* On Oland, we observe some flickering when two 4K 60Hz
-                * displays are connected, possibly because voltage is too low.
-                * Raise the voltage by requiring a higher SCLK.
-                * (Voltage cannot be adjusted independently without also SCLK.)
-                */
-               if (high_pixelclock_count > 1 && adev->asic_type == CHIP_OLAND)
-                       disable_sclk_switching = true;
-       }
-
        if (rps->vce_active) {
                rps->evclk = 
adev->pm.dpm.vce_states[adev->pm.dpm.vce_level].evclk;
                rps->ecclk = 
adev->pm.dpm.vce_states[adev->pm.dpm.vce_level].ecclk;
-- 
2.53.0

Reply via email to