linux/drivers/gpu/drm/radeon
Kai-Heng Feng 227545b9a0 drm/radeon/dpm: Disable sclk switching on Oland when two 4K 60Hz monitors are connected
Screen flickers rapidly when two 4K 60Hz monitors are in use. This issue
doesn't happen when one monitor is 4K 60Hz (pixelclock 594MHz) and
another one is 4K 30Hz (pixelclock 297MHz).

The issue is gone after setting "power_dpm_force_performance_level" to
"high". Following the indication, we found that the issue occurs when
sclk is too low.

So resolve the issue by disabling sclk switching when there are two
monitors requires high pixelclock (> 297MHz).

v2:
 - Only apply the fix to Oland.
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
2021-05-13 10:48:21 -04:00
..
reg_srcs
.gitignore
atom-bits.h
atom-names.h
atom-types.h
atom.c
atom.h drm/radeon/atom: Move 'radeon_atom_hw_i2c_*()'s prototypes into shared header 2020-11-16 15:56:34 -05:00
atombios_crtc.c drm: Switch to %p4cc format modifier 2021-02-17 12:52:59 +01:00
atombios_dp.c
atombios_encoders.c drm/radeon: Remove references to struct drm_device.pdev 2021-01-06 15:43:46 +01:00
atombios_i2c.c
atombios.h
avivod.h
btc_dpm.c drm/radeon/btc_dpm: Move 'evergreen_get_pi's prototype to shared header 2020-11-16 15:56:35 -05:00
btc_dpm.h
btcd.h
cayman_blit_shaders.c
cayman_blit_shaders.h
ci_dpm.c drm/radeon: Fix fall-through warnings for Clang 2020-11-24 12:05:42 -05:00
ci_dpm.h
ci_smc.c
cik_blit_shaders.c
cik_blit_shaders.h
cik_reg.h
cik_sdma.c drm/radeon/cik_sdma: Move 'amdgpu_cik_gpu_check_soft_reset()'s prototype to shared header 2020-11-16 15:56:35 -05:00
cik.c drm/radeon/cik: remove set but not used variables 2021-04-15 16:32:45 -04:00
cik.h drm/radeon/cik: Move 'Move 'cik_sdma_*()'s prototypes to shared header 2020-11-16 15:56:35 -05:00
cikd.h
clearstate_cayman.h
clearstate_ci.h
clearstate_defs.h
clearstate_evergreen.h
clearstate_si.h
cypress_dpm.c drm/radeon/btc_dpm: Move 'evergreen_get_pi's prototype to shared header 2020-11-16 15:56:35 -05:00
cypress_dpm.h
dce3_1_afmt.c
dce6_afmt.c drm/radeon/radeon_audio: Move 'dce6_*()'s prototypes to shared header 2020-11-16 15:56:35 -05:00
dce6_afmt.h drm/radeon/radeon_audio: Move 'dce6_*()'s prototypes to shared header 2020-11-16 15:56:35 -05:00
evergreen_blit_shaders.c
evergreen_blit_shaders.h
evergreen_cs.c drm/radeon/evergreen_cs: Move 'r600_dma_cs_next_reloc()'s prototype to shared header 2020-11-16 15:56:35 -05:00
evergreen_dma.c drm/radeon/evergreen_dma: Move 'evergreen_gpu_check_soft_reset()'s prototype to shared header 2020-11-16 15:56:34 -05:00
evergreen_hdmi.c drm/radeon/evergreen_hdmi: Move 'evergreen_*()' and 'dce4_*()' HDMI prototypes to shared header 2020-11-16 15:56:34 -05:00
evergreen_hdmi.h drm/radeon/evergreen_hdmi: Move 'evergreen_*()' and 'dce4_*()' HDMI prototypes to shared header 2020-11-16 15:56:34 -05:00
evergreen_reg.h
evergreen_smc.h
evergreen.c drm/radeon/evergreen: Move 'cik_*()'s prototypes to shared header 2020-11-16 15:56:35 -05:00
evergreen.h drm/radeon/btc_dpm: Move 'evergreen_get_pi's prototype to shared header 2020-11-16 15:56:35 -05:00
evergreend.h
Kconfig
kv_dpm.c drm/radeon/kv_dpm: Strip out unused functions and their tables 2020-11-13 00:11:53 -05:00
kv_dpm.h
kv_smc.c
Makefile
mkregtable.c
ni_dma.c drm/radeon/ni_dma: Move 'cayman_gpu_check_soft_reset()'s prototype to shared header 2020-11-16 15:56:34 -05:00
ni_dpm.c drm/radeon/ni_dpm: Fix booting bug 2021-05-13 10:45:15 -04:00
ni_dpm.h drm/radeon/ni_dpm: Move 'ni_get_{pi, ps}()'s into shared header 2020-11-16 15:56:34 -05:00
ni_reg.h
ni.c drm/radeon/evergreen: Move 'cayman_*()'s prototypes to shared header 2020-11-16 15:56:34 -05:00
ni.h drm/radeon/ni_dma: Move 'cayman_gpu_check_soft_reset()'s prototype to shared header 2020-11-16 15:56:34 -05:00
nid.h
nislands_smc.h drm/radeon/ni_dpm: Fix booting bug 2021-05-13 10:45:15 -04:00
ObjectID.h
ppsmc.h
pptable.h
r100_track.h
r100.c drm/radeon: do not use drm middle layer for debugfs (v2) 2021-02-18 16:43:10 -05:00
r100d.h
r200.c
r300_reg.h
r300.c drm/radeon: do not use drm middle layer for debugfs (v2) 2021-02-18 16:43:10 -05:00
r300d.h
r420.c drm/radeon: do not use drm middle layer for debugfs (v2) 2021-02-18 16:43:10 -05:00
r420d.h
r500_reg.h
r520.c
r520d.h
r600_blit_shaders.c
r600_blit_shaders.h
r600_cs.c drm/radeon/r600_cs: Few typo fixes 2021-04-09 16:44:26 -04:00
r600_dma.c drm/radeon/r600_dma: Move 'r600_gpu_check_soft_reset()'s prototype to shared location 2020-11-16 15:56:34 -05:00
r600_dpm.c
r600_dpm.h
r600_hdmi.c drm/radeon/radeon_audio: Move 'r600_*' prototypes into shared header 2020-11-16 15:56:35 -05:00
r600_reg.h
r600.c drm/radeon/r600: Fix variables that are not used after assignment 2021-04-09 16:55:08 -04:00
r600.h drm/radeon/radeon_audio: Move 'r600_*' prototypes into shared header 2020-11-16 15:56:35 -05:00
r600d.h
radeon_acpi.c drm/radeon/radeon_pm: Move 'radeon_pm_acpi_event_handler' prototype into shared header 2020-11-16 15:56:33 -05:00
radeon_acpi.h
radeon_agp.c
radeon_asic.c drm/radeon: OLAND boards don't have VCE 2021-02-18 16:43:09 -05:00
radeon_asic.h drm/radeon: do not use drm middle layer for debugfs (v2) 2021-02-18 16:43:10 -05:00
radeon_atombios.c drm/radeon: Avoid power table parsing memory leaks 2021-05-04 17:37:57 -04:00
radeon_atombios.h drm/radeon/radeon_encoders: Move 'radeon_atom_backlight_init's prototype to shared header 2020-11-16 15:56:34 -05:00
radeon_atpx_handler.c
radeon_audio.c drm/radeon/radeon_audio: Move 'r600_*' prototypes into shared header 2020-11-16 15:56:35 -05:00
radeon_audio.h drm/radeon/radeon_audio: Move 'dce3_2_*' prototypes to shared location 2020-11-16 15:56:33 -05:00
radeon_benchmark.c
radeon_bios.c drm pull for 5.12-rc1 2021-02-21 14:44:44 -08:00
radeon_clocks.c
radeon_combios.c drm/radeon: Remove references to struct drm_device.pdev 2021-01-06 15:43:46 +01:00
radeon_connectors.c drm/radeon/radeon_connectors: Strip out set but unused variable 'ret' 2020-11-13 00:11:10 -05:00
radeon_cs.c drm for 5.13-rc1 2021-04-28 10:01:40 -07:00
radeon_cursor.c
radeon_device.c drm/radeon: do not use drm middle layer for debugfs (v2) 2021-02-18 16:43:10 -05:00
radeon_device.h drm/radeon/radeon: Move prototype into shared header 2020-11-16 15:56:33 -05:00
radeon_display.c drm/radeon: Remove references to struct drm_device.pdev 2021-01-06 15:43:46 +01:00
radeon_dp_auxch.c
radeon_dp_mst.c drm/radeon: Fix a missing check bug in radeon_dp_mst_detect() 2021-04-09 16:58:23 -04:00
radeon_drv.c drm/radeon: Store PCI controller in struct radeon_device.hose 2021-01-13 14:22:37 +01:00
radeon_drv.h drm/radeon/radeon_drv: Move prototypes to a shared headerfile 2020-11-13 00:03:49 -05:00
radeon_encoders.c drm/radeon/radeon_encoders: Move 'radeon_atom_backlight_init's prototype to shared header 2020-11-16 15:56:34 -05:00
radeon_family.h
radeon_fb.c drm/radeon: Remove references to struct drm_device.pdev 2021-01-06 15:43:46 +01:00
radeon_fence.c drm/radeon: do not use drm middle layer for debugfs (v2) 2021-02-18 16:43:10 -05:00
radeon_gart.c drm/radeon: switch from 'pci_' to 'dma_' API 2020-07-27 16:45:29 -04:00
radeon_gem.c drm/radeon: also init GEM funcs in radeon_gem_prime_import_sg_table 2021-03-23 23:25:15 -04:00
radeon_i2c.c drm/radeon: Remove references to struct drm_device.pdev 2021-01-06 15:43:46 +01:00
radeon_ib.c drm/radeon: do not use drm middle layer for debugfs (v2) 2021-02-18 16:43:10 -05:00
radeon_irq_kms.c drm/radeon: Remove references to struct drm_device.pdev 2021-01-06 15:43:46 +01:00
radeon_kms.c drm/radeon: fix copy of uninitialized variable back to userspace 2021-03-03 10:51:37 -05:00
radeon_kms.h drm/radeon/radeon_drv: Move 'radeon_driver_irq_handler_kms's prototype into shared header 2020-11-16 15:56:34 -05:00
radeon_legacy_crtc.c
radeon_legacy_encoders.c drm/radeon: Remove references to struct drm_device.pdev 2021-01-06 15:43:46 +01:00
radeon_legacy_encoders.h drm/radeon/radeon_legacy_encoders: Move 'radeon_add_legacy_encoder's prototype to shared location 2020-11-16 15:56:33 -05:00
radeon_legacy_tv.c
radeon_mn.c drm/radeon/radeon_mn: Supply description for 'cur_seq' even if it is unused 2020-11-13 00:12:11 -05:00
radeon_mode.h drm/radeon: do not use drm middle layer for debugfs (v2) 2021-02-18 16:43:10 -05:00
radeon_object.c drm/radeon: don't evict if not initialized 2021-04-09 16:42:00 -04:00
radeon_object.h drm/ttm: cleanup BO size handling v3 2020-12-14 14:20:46 +01:00
radeon_pm.c drm/radeon/dpm: Disable sclk switching on Oland when two 4K 60Hz monitors are connected 2021-05-13 10:48:21 -04:00
radeon_pm.h drm/radeon/radeon_pm: Move 'radeon_pm_acpi_event_handler' prototype into shared header 2020-11-16 15:56:33 -05:00
radeon_prime.c drm/radeon: also init GEM funcs in radeon_gem_prime_import_sg_table 2021-03-23 23:25:15 -04:00
radeon_prime.h drm/radeon/radeon_drv: Move 'radeon_gem_prime_import_sg_table()'s prototype to shared header 2020-11-16 15:56:35 -05:00
radeon_reg.h
radeon_ring.c drm/radeon: do not use drm middle layer for debugfs (v2) 2021-02-18 16:43:10 -05:00
radeon_sa.c
radeon_semaphore.c
radeon_sync.c drm/radeon/radeon_sync: Add description for function param 'rdev' 2020-11-13 00:12:01 -05:00
radeon_test.c
radeon_trace_points.c
radeon_trace.h drm/ttm: cleanup BO size handling v3 2020-12-14 14:20:46 +01:00
radeon_ttm.c drm/radeon: Fix size overflow 2021-04-09 16:54:35 -04:00
radeon_ttm.h drm/radeon/radeon_drv: Move 'radeon_mmap()'s prototype to shared header 2020-11-16 15:56:33 -05:00
radeon_ucode.c
radeon_ucode.h
radeon_uvd.c drm/radeon: use writel to avoid gcc optimization v3 2021-01-05 11:32:05 -05:00
radeon_vce.c drm/radeon: OLAND boards don't have VCE 2021-02-18 16:43:09 -05:00
radeon_vm.c drm/radeon/radeon_vm: Fix some function parameter documentation 2020-11-13 00:11:50 -05:00
radeon.h drm/radeon/dpm: Disable sclk switching on Oland when two 4K 60Hz monitors are connected 2021-05-13 10:48:21 -04:00
rs100d.h
rs400.c drm/radeon: do not use drm middle layer for debugfs (v2) 2021-02-18 16:43:10 -05:00
rs400d.h
rs600.c drm/radeon: do not use drm middle layer for debugfs (v2) 2021-02-18 16:43:10 -05:00
rs600d.h
rs690.c drm/radeon: Simplify bool comparison 2021-02-09 15:49:47 -05:00
rs690d.h
rs780_dpm.c drm/radeon: Remove references to struct drm_device.pdev 2021-01-06 15:43:46 +01:00
rs780_dpm.h
rs780d.h
rv6xx_dpm.c
rv6xx_dpm.h
rv6xxd.h
rv200d.h
rv250d.h
rv350d.h
rv515.c drm/radeon: do not use drm middle layer for debugfs (v2) 2021-02-18 16:43:10 -05:00
rv515d.h
rv730_dpm.c drm/radeon/rv770: Move 'rv770_get_*()'s prototypes to shared header 2020-11-16 15:56:34 -05:00
rv730d.h
rv740_dpm.c drm/radeon/rv770: Move 'rv770_get_*()'s prototypes to shared header 2020-11-16 15:56:34 -05:00
rv740d.h
rv770_dma.c
rv770_dpm.c drm/radeon/btc_dpm: Move 'evergreen_get_pi's prototype to shared header 2020-11-16 15:56:35 -05:00
rv770_dpm.h
rv770_smc.c
rv770_smc.h
rv770.c drm/radeon/rv770: Move 'rv770_set_clk_bypass_mode' prototype to shared location 2020-11-16 15:56:33 -05:00
rv770.h drm/radeon/rv770: Move 'rv770_get_*()'s prototypes to shared header 2020-11-16 15:56:34 -05:00
rv770d.h
si_blit_shaders.c
si_blit_shaders.h
si_dma.c drm/radeon/si_dma: Move 'si_gpu_check_soft_reset()'s prototype to shared header 2020-11-16 15:56:34 -05:00
si_dpm.c drm/radeon/dpm: Disable sclk switching on Oland when two 4K 60Hz monitors are connected 2021-05-13 10:48:21 -04:00
si_dpm.h drm/radeon/ci_dpm: Move 'si_*()'s prototypes to shared header 2020-11-16 15:56:35 -05:00
si_reg.h
si_smc.c
si.c drm/radeon/si: Fix inconsistent indenting 2021-04-15 16:32:45 -04:00
si.h drm/radeon/evergreen: Move 'si_get_csb_*()'s prototypes to shared header 2020-11-16 15:56:35 -05:00
sid.h
sislands_smc.h drm/radeon/si_dpm: Fix SMU power state load 2021-05-13 10:45:29 -04:00
smu7_discrete.h
smu7_fusion.h
smu7.h
sumo_dpm.c drm/radeon: Add implementation of get_current_vddc for Sumo 2020-10-27 17:43:42 -04:00
sumo_dpm.h drm/radeon/sumo_dpm: Move 'sumo_get_pi()'s prototype into shared header 2020-11-13 00:12:30 -05:00
sumo_smc.c drm/radeon/sumo_dpm: Move 'sumo_get_pi()'s prototype into shared header 2020-11-13 00:12:30 -05:00
sumod.h
trinity_dpm.c drm/radeon/si_dpm: Move 'vce_v1_0_enable_mgcg()'s prototype to shared header 2020-11-16 15:56:35 -05:00
trinity_dpm.h
trinity_smc.c
trinityd.h
uvd_v1_0.c drm/radeon: fix typoes in comments 2020-09-22 17:37:38 -04:00
uvd_v2_2.c drm/radeon: fix typoes in comments 2020-09-22 17:37:38 -04:00
uvd_v3_1.c
uvd_v4_2.c drm/radeon: fix typoes in comments 2020-09-22 17:37:38 -04:00
vce_v1_0.c drm/radeon: OLAND boards don't have VCE 2021-02-18 16:43:09 -05:00
vce_v2_0.c drm/radeon/cik: Move 'vce_v2_0_enable_mgcg()'s prototype to shared header 2020-11-16 15:56:35 -05:00
vce.h drm/radeon/cik: Move 'vce_v2_0_enable_mgcg()'s prototype to shared header 2020-11-16 15:56:35 -05:00