diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/1697-drm-amd-display-Pass-init_data-into-DCN-resource-cre.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.19.8/1697-drm-amd-display-Pass-init_data-into-DCN-resource-cre.patch | 170 |
1 files changed, 170 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/1697-drm-amd-display-Pass-init_data-into-DCN-resource-cre.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/1697-drm-amd-display-Pass-init_data-into-DCN-resource-cre.patch new file mode 100644 index 00000000..b842301c --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/1697-drm-amd-display-Pass-init_data-into-DCN-resource-cre.patch @@ -0,0 +1,170 @@ +From d516df4835025d0add3bbdb4e01cc9ec45c702fb Mon Sep 17 00:00:00 2001 +From: Harry Wentland <harry.wentland@amd.com> +Date: Wed, 13 Feb 2019 16:20:27 -0500 +Subject: [PATCH 1697/2940] drm/amd/display: Pass init_data into DCN resource + creation + +[WHY] +The resource constructor currently needs num_virtual_links from +init_data but will need access to other items provided by DM. + +[HOW] +Pass init_data into DCN create_resource_pool functions. + +Change-Id: I3e250583c1a05c3ee9281fbbe59c42091b4f5ba3 +Signed-off-by: Harry Wentland <harry.wentland@amd.com> +Reviewed-by: Nicholas Kazlauskas <Nicholas.Kazlauskas@amd.com> +Acked-by: Bhawanpreet Lakha <Bhawanpreet.Lakha@amd.com> +Acked-by: Hersen Wu <hersenxs.wu@amd.com> +--- + drivers/gpu/drm/amd/display/dc/core/dc.c | 6 +---- + .../gpu/drm/amd/display/dc/core/dc_resource.c | 26 +++++++++---------- + .../drm/amd/display/dc/dcn10/dcn10_resource.c | 4 +-- + .../drm/amd/display/dc/dcn10/dcn10_resource.h | 2 +- + drivers/gpu/drm/amd/display/dc/inc/resource.h | 8 +++--- + 5 files changed, 19 insertions(+), 27 deletions(-) + +diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c +index fa83781dbd5d..c7c3c383974b 100644 +--- a/drivers/gpu/drm/amd/display/dc/core/dc.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc.c +@@ -735,11 +735,7 @@ static bool construct(struct dc *dc, + goto fail; + } + +- dc->res_pool = dc_create_resource_pool( +- dc, +- init_params->num_virtual_links, +- dc_version, +- init_params->asic_id); ++ dc->res_pool = dc_create_resource_pool(dc, init_params, dc_version); + if (!dc->res_pool) + goto fail; + +diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c +index 788b771efcf4..7d6747ecdeb5 100644 +--- a/drivers/gpu/drm/amd/display/dc/core/dc_resource.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc_resource.c +@@ -106,44 +106,43 @@ enum dce_version resource_parse_asic_id(struct hw_asic_id asic_id) + return dc_version; + } + +-struct resource_pool *dc_create_resource_pool( +- struct dc *dc, +- int num_virtual_links, +- enum dce_version dc_version, +- struct hw_asic_id asic_id) ++struct resource_pool *dc_create_resource_pool(struct dc *dc, ++ const struct dc_init_data *init_data, ++ enum dce_version dc_version) + { + struct resource_pool *res_pool = NULL; + + switch (dc_version) { + case DCE_VERSION_8_0: + res_pool = dce80_create_resource_pool( +- num_virtual_links, dc); ++ init_data->num_virtual_links, dc); + break; + case DCE_VERSION_8_1: + res_pool = dce81_create_resource_pool( +- num_virtual_links, dc); ++ init_data->num_virtual_links, dc); + break; + case DCE_VERSION_8_3: + res_pool = dce83_create_resource_pool( +- num_virtual_links, dc); ++ init_data->num_virtual_links, dc); + break; + case DCE_VERSION_10_0: + res_pool = dce100_create_resource_pool( +- num_virtual_links, dc); ++ init_data->num_virtual_links, dc); + break; + case DCE_VERSION_11_0: + res_pool = dce110_create_resource_pool( +- num_virtual_links, dc, asic_id); ++ init_data->num_virtual_links, dc, ++ init_data->asic_id); + break; + case DCE_VERSION_11_2: + case DCE_VERSION_11_22: + res_pool = dce112_create_resource_pool( +- num_virtual_links, dc); ++ init_data->num_virtual_links, dc); + break; + case DCE_VERSION_12_0: + case DCE_VERSION_12_1: + res_pool = dce120_create_resource_pool( +- num_virtual_links, dc); ++ init_data->num_virtual_links, dc); + break; + + #ifdef CONFIG_X86 +@@ -151,8 +150,7 @@ struct resource_pool *dc_create_resource_pool( + #if defined(CONFIG_DRM_AMD_DC_DCN1_01) + case DCN_VERSION_1_01: + #endif +- res_pool = dcn10_create_resource_pool( +- num_virtual_links, dc); ++ res_pool = dcn10_create_resource_pool(init_data, dc); + break; + #endif + +diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c +index 29f8893e44b6..7c37836bb9cc 100644 +--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c ++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.c +@@ -1528,7 +1528,7 @@ static bool construct( + } + + struct resource_pool *dcn10_create_resource_pool( +- uint8_t num_virtual_links, ++ const struct dc_init_data *init_data, + struct dc *dc) + { + struct dcn10_resource_pool *pool = +@@ -1537,7 +1537,7 @@ struct resource_pool *dcn10_create_resource_pool( + if (!pool) + return NULL; + +- if (construct(num_virtual_links, dc, pool)) ++ if (construct(init_data->num_virtual_links, dc, pool)) + return &pool->base; + + BREAK_TO_DEBUGGER(); +diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.h b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.h +index 8f71225bc61b..999c684a0b36 100644 +--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.h ++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_resource.h +@@ -39,7 +39,7 @@ struct dcn10_resource_pool { + struct resource_pool base; + }; + struct resource_pool *dcn10_create_resource_pool( +- uint8_t num_virtual_links, ++ const struct dc_init_data *init_data, + struct dc *dc); + + +diff --git a/drivers/gpu/drm/amd/display/dc/inc/resource.h b/drivers/gpu/drm/amd/display/dc/inc/resource.h +index 028c63061767..0a70254d204f 100644 +--- a/drivers/gpu/drm/amd/display/dc/inc/resource.h ++++ b/drivers/gpu/drm/amd/display/dc/inc/resource.h +@@ -70,11 +70,9 @@ bool resource_construct( + struct resource_pool *pool, + const struct resource_create_funcs *create_funcs); + +-struct resource_pool *dc_create_resource_pool( +- struct dc *dc, +- int num_virtual_links, +- enum dce_version dc_version, +- struct hw_asic_id asic_id); ++struct resource_pool *dc_create_resource_pool(struct dc *dc, ++ const struct dc_init_data *init_data, ++ enum dce_version dc_version); + + void dc_destroy_resource_pool(struct dc *dc); + +-- +2.17.1 + |