The patch below does not apply to the 6.5-stable tree. If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <stable@xxxxxxxxxxxxxxx>. To reproduce the conflict and resubmit, you may use the following commands: git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-6.5.y git checkout FETCH_HEAD git cherry-pick -x 40255df370e94d44f0f0a924400d68db0ee31bec # <resolve conflicts, build, test, etc.> git commit -s git send-email --to '<stable@xxxxxxxxxxxxxxx>' --in-reply-to '2023112221-sinister-dandy-6592@gregkh' --subject-prefix 'PATCH 6.5.y' HEAD^.. Possible dependencies: 40255df370e9 ("drm/amd/display: enable dsc_clk even if dsc_pg disabled") 0fa45b6aeae4 ("drm/amd/display: Add DCN35 Resource") 17e349e6841b ("drm/amd/display: Implement interface for notify cursor support change") e013864479f7 ("drm/amd/display: Add structs for Freesync Panel Replay") e013864479f7 ("drm/amd/display: Add structs for Freesync Panel Replay") e013864479f7 ("drm/amd/display: Add structs for Freesync Panel Replay") e013864479f7 ("drm/amd/display: Add structs for Freesync Panel Replay") e013864479f7 ("drm/amd/display: Add structs for Freesync Panel Replay") e013864479f7 ("drm/amd/display: Add structs for Freesync Panel Replay") e013864479f7 ("drm/amd/display: Add structs for Freesync Panel Replay") e013864479f7 ("drm/amd/display: Add structs for Freesync Panel Replay") e013864479f7 ("drm/amd/display: Add structs for Freesync Panel Replay") e013864479f7 ("drm/amd/display: Add structs for Freesync Panel Replay") e013864479f7 ("drm/amd/display: Add structs for Freesync Panel Replay") e013864479f7 ("drm/amd/display: Add structs for Freesync Panel Replay") e013864479f7 ("drm/amd/display: Add structs for Freesync Panel Replay") e013864479f7 ("drm/amd/display: Add structs for Freesync Panel Replay") e013864479f7 ("drm/amd/display: Add structs for Freesync Panel Replay") e013864479f7 ("drm/amd/display: Add structs for Freesync Panel Replay") e013864479f7 ("drm/amd/display: Add structs for Freesync Panel Replay") thanks, greg k-h ------------------ original commit in Linus's tree ------------------ >From 40255df370e94d44f0f0a924400d68db0ee31bec Mon Sep 17 00:00:00 2001 From: Muhammad Ahmed <ahmed.ahmed@xxxxxxx> Date: Mon, 18 Sep 2023 16:52:54 -0400 Subject: [PATCH] drm/amd/display: enable dsc_clk even if dsc_pg disabled [why] need to enable dsc_clk regardless dsc_pg Reviewed-by: Charlene Liu <charlene.liu@xxxxxxx> Cc: Mario Limonciello <mario.limonciello@xxxxxxx> Cc: Alex Deucher <alexander.deucher@xxxxxxx> Cc: stable@xxxxxxxxxxxxxxx Acked-by: Aurabindo Pillai <aurabindo.pillai@xxxxxxx> Signed-off-by: Muhammad Ahmed <ahmed.ahmed@xxxxxxx> Tested-by: Daniel Wheeler <daniel.wheeler@xxxxxxx> Signed-off-by: Alex Deucher <alexander.deucher@xxxxxxx> diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c index 72dffb7a49f9..39e291a467e2 100644 --- a/drivers/gpu/drm/amd/display/dc/core/dc.c +++ b/drivers/gpu/drm/amd/display/dc/core/dc.c @@ -1853,7 +1853,7 @@ static enum dc_status dc_commit_state_no_check(struct dc *dc, struct dc_state *c if (dc->hwss.subvp_pipe_control_lock) dc->hwss.subvp_pipe_control_lock(dc, context, true, true, NULL, subvp_prev_use); - if (dc->debug.enable_double_buffered_dsc_pg_support) + if (dc->hwss.update_dsc_pg) dc->hwss.update_dsc_pg(dc, context, false); disable_dangling_plane(dc, context); @@ -1960,7 +1960,7 @@ static enum dc_status dc_commit_state_no_check(struct dc *dc, struct dc_state *c dc->hwss.optimize_bandwidth(dc, context); } - if (dc->debug.enable_double_buffered_dsc_pg_support) + if (dc->hwss.update_dsc_pg) dc->hwss.update_dsc_pg(dc, context, true); if (dc->ctx->dce_version >= DCE_VERSION_MAX) @@ -2207,7 +2207,7 @@ void dc_post_update_surfaces_to_stream(struct dc *dc) dc->hwss.optimize_bandwidth(dc, context); - if (dc->debug.enable_double_buffered_dsc_pg_support) + if (dc->hwss.update_dsc_pg) dc->hwss.update_dsc_pg(dc, context, true); } @@ -3565,7 +3565,7 @@ static void commit_planes_for_stream(struct dc *dc, if (get_seamless_boot_stream_count(context) == 0) dc->hwss.prepare_bandwidth(dc, context); - if (dc->debug.enable_double_buffered_dsc_pg_support) + if (dc->hwss.update_dsc_pg) dc->hwss.update_dsc_pg(dc, context, false); context_clock_trace(dc, context); diff --git a/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c b/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c index 76fd7a41bdbf..45b557d8e089 100644 --- a/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c +++ b/drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c @@ -77,6 +77,9 @@ void dcn32_dsc_pg_control( if (hws->ctx->dc->debug.disable_dsc_power_gate) return; + if (!hws->ctx->dc->debug.enable_double_buffered_dsc_pg_support) + return; + REG_GET(DC_IP_REQUEST_CNTL, IP_REQUEST_EN, &org_ip_request_cntl); if (org_ip_request_cntl == 0) REG_SET(DC_IP_REQUEST_CNTL, 0, IP_REQUEST_EN, 1); diff --git a/drivers/gpu/drm/amd/display/dc/dcn35/dcn35_resource.c b/drivers/gpu/drm/amd/display/dc/dcn35/dcn35_resource.c index 10ae1b3da751..6214866916c7 100644 --- a/drivers/gpu/drm/amd/display/dc/dcn35/dcn35_resource.c +++ b/drivers/gpu/drm/amd/display/dc/dcn35/dcn35_resource.c @@ -742,7 +742,7 @@ static const struct dc_debug_options debug_defaults_drv = { .disable_mem_low_power = false, .enable_hpo_pg_support = false, //must match enable_single_display_2to1_odm_policy to support dynamic ODM transitions - .enable_double_buffered_dsc_pg_support = false, + .enable_double_buffered_dsc_pg_support = true, .enable_dp_dig_pixel_rate_div_policy = 1, .disable_z10 = false, .ignore_pg = true,