FAILED: patch "[PATCH] drm/amd/display: Add option to retrieve detile buffer size" failed to apply to 6.6-stable tree
[email protected]
maintainerThe patch below does not apply to the 6.6-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 <[email protected]>.
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.6.y
git checkout FETCH_HEAD
git cherry-pick -x 6a7fd76b949efe40fb6d6677f480e624e0cb6e40
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2024121042-mortally-luckless-e866@gregkh' --subject-prefix 'PATCH 6.6.y' HEAD^..
Possible dependencies:
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 6a7fd76b949efe40fb6d6677f480e624e0cb6e40 Mon Sep 17 00:00:00 2001
From: Sung Lee <[email protected]>
Date: Thu, 14 Nov 2024 14:18:13 -0500
Subject: [PATCH] drm/amd/display: Add option to retrieve detile buffer size
[WHY]
For better power profiling knowing the detile
buffer size at a given point in time
would be useful.
[HOW]
Add interface to retrieve detile buffer from
dc state.
drivers/gpu/drm/amd/display/dc/core/dc.c +18 -0
@@ -6109,3 +6109,21 @@ struct dc_power_profile dc_get_power_profile_for_dc_state(const struct dc_state profile.power_level = dc->res_pool->funcs->get_power_profile (context);return profile; } + +/* +********************************************************************************** +* dc_get_det_buffer_size_from_state() - extracts detile buffer size from dc state +* +* Called when DM wants to log detile buffer size from dc_state +* +********************************************************************************** +*/ +unsigned int dc_get_det_buffer_size_from_state (const struct dc_state *context) +{ +struct dc *dc = context->clk_mgr->ctx->dc; + +if (dc->res_pool->funcs->get_det_buffer_size) +return dc->res_pool->funcs->get_det_buffer_size (context); +else +return 0 ; +}
drivers/gpu/drm/amd/display/dc/dc.h +2 -0
@@ -2550,6 +2550,8 @@ struct dc_power_profile {struct dc_power_profile dc_get_power_profile_for_dc_state (const struct dc_state *context); +unsigned int dc_get_det_buffer_size_from_state (const struct dc_state *context); +/* DSC Interfaces */ #include "dc_dsc.h"
drivers/gpu/drm/amd/display/dc/inc/core_types.h +1 -0
@@ -219,6 +219,7 @@ struct resource_funcs {* Get indicator of power from a context that went through full validation */ int (*get_power_profile)(const struct dc_state *context); +unsigned int (*get_det_buffer_size)(const struct dc_state *context); };struct audio_support {
drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.c +7 -0
@@ -1720,6 +1720,12 @@ int dcn31_populate_dml_pipes_from_context(return pipe_cnt; } +unsigned int dcn31_get_det_buffer_size ( +const struct dc_state *context) +{ +return context->bw_ctx.dml.ip.det_buffer_size_kbytes; +} + void dcn31_calculate_wm_and_dlg( struct dc *dc, struct dc_state *context, display_e2e_pipe_params_st *pipes,
@@ -1842,6 +1848,7 @@ static struct resource_funcs dcn31_res_pool_funcs = { .update_bw_bounding_box = dcn31_update_bw_bounding_box, .patch_unknown_plane_state = dcn20_patch_unknown_plane_state, .get_panel_config_defaults = dcn31_get_panel_config_defaults, + .get_det_buffer_size = dcn31_get_det_buffer_size, }; static struct clock_source *dcn30_clock_source_create(
drivers/gpu/drm/amd/display/dc/resource/dcn31/dcn31_resource.h +3 -0
@@ -63,6 +63,9 @@ struct resource_pool *dcn31_create_resource_pool(const struct dc_init_data *init_data, struct dc *dc); +unsigned int dcn31_get_det_buffer_size ( +const struct dc_state *context); +/*temp: B0 specific before switch to dcn313 headers*/ #ifndef regPHYPLLF_PIXCLK_RESYNC_CNTL#define regPHYPLLF_PIXCLK_RESYNC_CNTL 0x007e
drivers/gpu/drm/amd/display/dc/resource/dcn314/dcn314_resource.c +1 -0
@@ -1777,6 +1777,7 @@ static struct resource_funcs dcn314_res_pool_funcs = { .patch_unknown_plane_state = dcn20_patch_unknown_plane_state, .get_panel_config_defaults = dcn314_get_panel_config_defaults, .get_preferred_eng_id_dpia = dcn314_get_preferred_eng_id_dpia, + .get_det_buffer_size = dcn31_get_det_buffer_size, }; static struct clock_source *dcn30_clock_source_create(
drivers/gpu/drm/amd/display/dc/resource/dcn315/dcn315_resource.c +1 -0
@@ -1845,6 +1845,7 @@ static struct resource_funcs dcn315_res_pool_funcs = { .patch_unknown_plane_state = dcn20_patch_unknown_plane_state, .get_panel_config_defaults = dcn315_get_panel_config_defaults, .get_power_profile = dcn315_get_power_profile, + .get_det_buffer_size = dcn31_get_det_buffer_size, }; static bool dcn315_resource_construct(
drivers/gpu/drm/amd/display/dc/resource/dcn316/dcn316_resource.c +1 -0
@@ -1719,6 +1719,7 @@ static struct resource_funcs dcn316_res_pool_funcs = { .update_bw_bounding_box = dcn316_update_bw_bounding_box, .patch_unknown_plane_state = dcn20_patch_unknown_plane_state, .get_panel_config_defaults = dcn316_get_panel_config_defaults, + .get_det_buffer_size = dcn31_get_det_buffer_size, }; static bool dcn316_resource_construct(
drivers/gpu/drm/amd/display/dc/resource/dcn35/dcn35_resource.c +1 -0
@@ -1778,6 +1778,7 @@ static struct resource_funcs dcn35_res_pool_funcs = { .patch_unknown_plane_state = dcn20_patch_unknown_plane_state, .get_panel_config_defaults = dcn35_get_panel_config_defaults, .get_preferred_eng_id_dpia = dcn35_get_preferred_eng_id_dpia, + .get_det_buffer_size = dcn31_get_det_buffer_size, }; static bool dcn35_resource_construct(
drivers/gpu/drm/amd/display/dc/resource/dcn351/dcn351_resource.c +1 -0
@@ -1757,6 +1757,7 @@ static struct resource_funcs dcn351_res_pool_funcs = { .patch_unknown_plane_state = dcn20_patch_unknown_plane_state, .get_panel_config_defaults = dcn35_get_panel_config_defaults, .get_preferred_eng_id_dpia = dcn351_get_preferred_eng_id_dpia, + .get_det_buffer_size = dcn31_get_det_buffer_size, }; static bool dcn351_resource_construct(