linux/drivers/gpu/drm/amd/display/dc
Matthew Schwartz 382bd6a792 drm/amd/display: Don't program BLNDGAM_MEM_PWR_FORCE when CM low-power is disabled on DCN30
Before commit 33056a97ae ("drm/amd/display: Remove double checks for
`debug.enable_mem_low_power.bits.cm`"), dpp3_program_blnd_lut(NULL)
checked the low-power debug flag before calling
dpp3_power_on_blnd_lut(false).

After commit 33056a97ae ("drm/amd/display: Remove double checks for
`debug.enable_mem_low_power.bits.cm`"), dpp3_program_blnd_lut(NULL)
unconditionally calls dpp3_power_on_blnd_lut(false). The BLNDGAM power
helper writes BLNDGAM_MEM_PWR_FORCE when CM low-power is disabled, causing
immediate SRAM power toggles instead of deferring at vupdate. This can
disrupt atomic color/LUT sequencing during transitions between
direct scanout and composition within gamescope's DRM backend on
Steam Deck OLED.

To fix this, leave the BLNDGAM power state unchanged when low-power is
disabled, matching dpp3_power_on_hdr3dlut and dpp3_power_on_shaper.

Fixes: 33056a97ae ("drm/amd/display: Remove double checks for `debug.enable_mem_low_power.bits.cm`")
Signed-off-by: Matthew Schwartz <matthew.schwartz@linux.dev>
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 13ff4f63fcddfc84ec8632f1443936b00aa26725)
Cc: stable@vger.kernel.org
2025-10-28 11:01:44 -04:00
..
basics drm/amd/display: Multiplication result converted to larger type 2025-08-27 13:57:50 -04:00
bios drm/amd/display: Fix fractional fb divider in set_pixel_clock_v3 2025-08-18 18:00:34 -04:00
clk_mgr drm/amd/display: Reject modes with too high pixel clock on DCE6-10 2025-09-25 15:51:07 -04:00
core drm/amd/display: Remove wm_optimized_required 2025-09-23 10:32:06 -04:00
dccg drm/amd/display: Insert dccg log for easy debug 2025-09-23 10:32:15 -04:00
dce drm/amd/display: Properly disable scaling on DCE6 2025-10-07 14:09:06 -04:00
dce60 drm/amd/display/dc: reclassify DCE6 resources and hw sequencer 2025-04-08 16:48:14 -04:00
dce80 drm/amd/display: Rename program_timing function for better debugging 2025-04-30 18:18:59 -04:00
dce110
dce112
dce120
dcn10
dcn20
dcn21
dcn30
dcn31
dcn201
dcn301
dio drm/amd/display: Rename header file link.h to link_service.h 2025-09-15 16:57:29 -04:00
dml drm/amd/display: Fix unsafe uses of kernel mode FPU 2025-10-07 14:09:19 -04:00
dml2 drm/amd/display: Optimize remove_duplicates() from O(N^2) to O(N) 2025-09-23 10:36:53 -04:00
dpp drm/amd/display: Don't program BLNDGAM_MEM_PWR_FORCE when CM low-power is disabled on DCN30 2025-10-28 11:01:44 -04:00
dsc drm/amd/display: Add DSC padding for OVT Support 2025-09-15 17:01:11 -04:00
dwb
gpio drm/amd/display: Adjust set_value function with prefix to help in ftrace 2025-05-22 12:01:47 -04:00
hdcp drm/amd/display: Rename header file link.h to link_service.h 2025-09-15 16:57:29 -04:00
hpo
hubbub drm/amd/display: Set wm_pending when disable stutter w/a used 2025-09-23 10:31:58 -04:00
hubp drm/amd/display: Adding interface to log hw state when underflow happens 2025-08-04 14:40:32 -04:00
hwss drm/amd/display: increase max link count and fix link->enc NULL pointer access 2025-10-21 09:50:27 -04:00
inc drm/amd/display: increase max link count and fix link->enc NULL pointer access 2025-10-21 09:50:27 -04:00
irq drm/amd/display/dc/irq: Remove duplications of hpd_ack function from IRQ 2025-05-13 09:37:09 -04:00
link drm/amd/display: Fix NULL pointer dereference 2025-10-21 09:45:33 -04:00
mmhubbub drm/amd/display: Multiplication result converted to larger type 2025-08-27 13:57:50 -04:00
mpc drm/amd/display: Delete unused functions 2025-08-18 16:57:22 -04:00
opp
optc drm/amd/display: wait for otg update pending latch before clock optimization 2025-08-27 13:57:50 -04:00
pg drm/amd/display: Correct sequences and delays for DCN35 PG & RCG 2025-09-09 12:25:22 -04:00
resource drm/amd/display: Fix unsafe uses of kernel mode FPU 2025-10-07 14:09:19 -04:00
soc_and_ip_translator drm/amd/display: Add Component To Handle Bounding Box Values and IP Caps 2025-08-29 10:14:02 -04:00
sspl drm/amd/display: Incorrect Mirror Cositing 2025-10-07 14:09:20 -04:00
virtual drm/amd/display: Move setup_stream_attribute 2025-07-28 16:40:07 -04:00
dc.h drm/amd/display: remove output_tf_change flag 2025-09-23 10:37:01 -04:00
dc_bios_types.h
dc_ddc_types.h
dc_dmub_srv.c drm/amd/display: Align LSDMA commands fields 2025-08-18 16:57:29 -04:00
dc_dmub_srv.h drm/amd/display: Add LSDMA Linear Sub Window Copy support 2025-08-18 16:56:53 -04:00
dc_dp_types.h drm/amd/display: Read DPCD to obtain eDP capability information. 2025-09-05 17:38:41 -04:00
dc_dsc.h
dc_edid_parser.c
dc_edid_parser.h
dc_fused_io.c drm/amd/display: Prepare for Fused I2C-over-AUX 2025-05-05 12:55:30 -04:00
dc_fused_io.h
dc_hdmi_types.h
dc_helper.c drm/amd/display: Disable VRR on DCE 6 2025-09-15 17:04:28 -04:00
dc_hw_types.h drm/amd/display: Added case for when RR equals panel's max RR using freesync 2025-06-30 14:00:51 -04:00
dc_plane.h drm/amd/display: Extend dc_plane_get_status with flags 2025-05-16 13:38:25 -04:00
dc_plane_priv.h
dc_spl_translate.c drm/amd/display: Add DSC padding for OVT Support 2025-09-15 17:01:11 -04:00
dc_spl_translate.h
dc_stat.h
dc_state.h
dc_state_priv.h drm/amd/display: Refactor SubVP cursor limiting logic 2025-05-05 12:58:49 -04:00
dc_stream.h drm/amd/display: Add AVI infoframe copy in copy_stream_update_to_stream 2025-09-23 10:26:33 -04:00
dc_stream_priv.h
dc_trace.h
dc_types.h drm/amd/display: Add monitor patch to read psr cap again 2025-09-23 10:26:47 -04:00
dm_cp_psp.h
dm_event_log.h
dm_helpers.h
dm_pp_smu.h
dm_services.h drm/amd/display: Refactor SMU tracing 2025-09-23 10:31:51 -04:00
dm_services_types.h drm/amd/display: Add pixel_clock to amd_pp_display_configuration 2025-09-15 16:52:41 -04:00
irq_types.h drm/amd/display: Implement HDMI Read Request 2025-04-21 11:27:25 -04:00
Makefile drm/amd/display: Add Component To Handle Bounding Box Values and IP Caps 2025-08-29 10:14:02 -04:00
os_types.h drm/amd/display: Move vmalloc include to header file 2025-06-03 15:35:59 -04:00