aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0882-drm-amd-dal-Move-hw_init-into-hwss.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/files/0882-drm-amd-dal-Move-hw_init-into-hwss.patch')
-rw-r--r--common/recipes-kernel/linux/files/0882-drm-amd-dal-Move-hw_init-into-hwss.patch291
1 files changed, 0 insertions, 291 deletions
diff --git a/common/recipes-kernel/linux/files/0882-drm-amd-dal-Move-hw_init-into-hwss.patch b/common/recipes-kernel/linux/files/0882-drm-amd-dal-Move-hw_init-into-hwss.patch
deleted file mode 100644
index 13174eb2..00000000
--- a/common/recipes-kernel/linux/files/0882-drm-amd-dal-Move-hw_init-into-hwss.patch
+++ /dev/null
@@ -1,291 +0,0 @@
-From 8bea7ee56f14f0cfcc25373b35cc5907a1f03f79 Mon Sep 17 00:00:00 2001
-From: Jordan Lazare <Jordan.Lazare@amd.com>
-Date: Mon, 7 Mar 2016 13:53:12 -0500
-Subject: [PATCH 0882/1110] drm/amd/dal: Move hw_init into hwss
-
-Also move hwss creation to the bottom of dc_resource
-
-Signed-off-by: Jordan Lazare <Jordan.Lazare@amd.com>
-Acked-by: Harry Wentland <harry.wentland@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
----
- drivers/gpu/drm/amd/dal/dc/core/dc.c | 81 ++++------------------
- .../gpu/drm/amd/dal/dc/dce100/dce100_resource.c | 4 ++
- .../drm/amd/dal/dc/dce110/dce110_hw_sequencer.c | 57 ++++++++++++++-
- .../gpu/drm/amd/dal/dc/dce110/dce110_resource.c | 4 ++
- drivers/gpu/drm/amd/dal/dc/dce80/dce80_resource.c | 4 ++
- drivers/gpu/drm/amd/dal/dc/inc/hw_sequencer.h | 2 +
- 6 files changed, 82 insertions(+), 70 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc.c b/drivers/gpu/drm/amd/dal/dc/core/dc.c
-index 3a6d0c1..f6eccbd 100644
---- a/drivers/gpu/drm/amd/dal/dc/core/dc.c
-+++ b/drivers/gpu/drm/amd/dal/dc/core/dc.c
-@@ -163,59 +163,7 @@ failed_alloc:
- return false;
- }
-
--static void init_hw(struct core_dc *dc)
--{
-- int i;
-- struct dc_bios *bp;
-- struct transform *xfm;
--
-- bp = dc->ctx->dc_bios;
-- for (i = 0; i < dc->res_pool.pipe_count; i++) {
-- xfm = dc->res_pool.transforms[i];
--
-- dc->hwss.enable_display_power_gating(
-- dc->ctx, i, bp,
-- PIPE_GATING_CONTROL_INIT);
-- dc->hwss.enable_display_power_gating(
-- dc->ctx, i, bp,
-- PIPE_GATING_CONTROL_DISABLE);
-- xfm->funcs->transform_power_up(xfm);
-- dc->hwss.enable_display_pipe_clock_gating(
-- dc->ctx,
-- true);
-- }
--
-- dc->hwss.clock_gating_power_up(dc->ctx, false);
-- bp->funcs->power_up(bp);
-- /***************************************/
-
-- for (i = 0; i < dc->link_count; i++) {
-- /****************************************/
-- /* Power up AND update implementation according to the
-- * required signal (which may be different from the
-- * default signal on connector). */
-- struct core_link *link = dc->links[i];
-- link->link_enc->funcs->hw_init(link->link_enc);
-- }
--
-- for (i = 0; i < dc->res_pool.pipe_count; i++) {
-- struct timing_generator *tg = dc->res_pool.timing_generators[i];
--
-- tg->funcs->disable_vga(tg);
--
-- /* Blank controller using driver code instead of
-- * command table. */
-- tg->funcs->set_blank(tg, true);
-- }
--
-- for(i = 0; i < dc->res_pool.audio_count; i++) {
-- struct audio *audio = dc->res_pool.audios[i];
--
-- if (dal_audio_power_up(audio) != AUDIO_RESULT_OK)
-- dm_error("Failed audio power up!\n");
-- }
--
--}
-
- static struct adapter_service *create_as(
- const struct dc_init_data *init,
-@@ -351,10 +299,6 @@ static bool construct(struct core_dc *dc, const struct dc_init_data *init_params
-
- dc_ctx->dc_bios = dal_adapter_service_get_bios_parser(as);
-
-- /* Create hardware sequencer */
-- if (!dc_construct_hw_sequencer(as, dc))
-- goto hwss_fail;
--
- if (!dc_construct_resource_pool(
- as, dc, init_params->num_virtual_links, dc_version))
- goto construct_resource_fail;
-@@ -388,7 +332,6 @@ create_links_fail:
- as_fail:
- dal_logger_destroy(&dc_ctx->logger);
- logger_fail:
--hwss_fail:
- dm_free(dc_ctx);
- ctx_fail:
- return false;
-@@ -480,31 +423,31 @@ struct dc *dc_create(const struct dc_init_data *init_params)
- .driver_context = init_params->driver,
- .cgs_device = init_params->cgs_device
- };
-- struct core_dc *dc = dm_alloc(sizeof(*dc));
-+ struct core_dc *core_dc = dm_alloc(sizeof(*core_dc));
-
-- if (NULL == dc)
-+ if (NULL == core_dc)
- goto alloc_fail;
-
-- ctx.dc = &dc->public;
-- if (false == construct(dc, init_params))
-+ ctx.dc = &core_dc->public;
-+ if (false == construct(core_dc, init_params))
- goto construct_fail;
-
- /*TODO: separate HW and SW initialization*/
-- init_hw(dc);
-+ core_dc->hwss.init_hw(core_dc);
-
-- dc->public.caps.max_targets = dc->res_pool.pipe_count;
-- dc->public.caps.max_links = dc->link_count;
-- dc->public.caps.max_audios = dc->res_pool.audio_count;
-+ core_dc->public.caps.max_targets = core_dc->res_pool.pipe_count;
-+ core_dc->public.caps.max_links = core_dc->link_count;
-+ core_dc->public.caps.max_audios = core_dc->res_pool.audio_count;
-
-- dal_logger_write(dc->ctx->logger,
-+ dal_logger_write(core_dc->ctx->logger,
- LOG_MAJOR_INTERFACE_TRACE,
- LOG_MINOR_COMPONENT_DC,
- "Display Core initialized\n");
-
-- return &dc->public;
-+ return &core_dc->public;
-
- construct_fail:
-- dm_free(dc);
-+ dm_free(core_dc);
-
- alloc_fail:
- return NULL;
-@@ -1182,7 +1125,7 @@ void dc_set_power_state(
-
- switch (power_state) {
- case DC_ACPI_CM_POWER_STATE_D0:
-- init_hw(core_dc);
-+ core_dc->hwss.init_hw(core_dc);
- break;
- default:
- /* NULL means "reset/release all DC targets" */
-diff --git a/drivers/gpu/drm/amd/dal/dc/dce100/dce100_resource.c b/drivers/gpu/drm/amd/dal/dc/dce100/dce100_resource.c
-index 6b8ae77..1911bbb 100644
---- a/drivers/gpu/drm/amd/dal/dc/dce100/dce100_resource.c
-+++ b/drivers/gpu/drm/amd/dal/dc/dce100/dce100_resource.c
-@@ -1050,6 +1050,10 @@ bool dce100_construct_resource_pool(
- pool->stream_enc_count++;
- }
-
-+ /* Create hardware sequencer */
-+ if (!dc_construct_hw_sequencer(as, dc))
-+ goto stream_enc_create_fail;
-+
- return true;
-
- stream_enc_create_fail:
-diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c
-index e6d1c3a..defaac4 100644
---- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c
-+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_hw_sequencer.c
-@@ -1593,7 +1593,62 @@ static void enable_timing_synchronization(
- DC_SYNC_INFO("GSL: Set-up complete.\n");
- }
-
-+static void init_hw(struct core_dc *dc)
-+{
-+ int i;
-+ struct dc_bios *bp;
-+ struct transform *xfm;
-+
-+ bp = dc->ctx->dc_bios;
-+ for (i = 0; i < dc->res_pool.pipe_count; i++) {
-+ xfm = dc->res_pool.transforms[i];
-+
-+ dc->hwss.enable_display_power_gating(
-+ dc->ctx, i, bp,
-+ PIPE_GATING_CONTROL_INIT);
-+ dc->hwss.enable_display_power_gating(
-+ dc->ctx, i, bp,
-+ PIPE_GATING_CONTROL_DISABLE);
-+ xfm->funcs->transform_power_up(xfm);
-+ dc->hwss.enable_display_pipe_clock_gating(
-+ dc->ctx,
-+ true);
-+ }
-+
-+ dc->hwss.clock_gating_power_up(dc->ctx, false);
-+ bp->funcs->power_up(bp);
-+ /***************************************/
-+
-+ for (i = 0; i < dc->link_count; i++) {
-+ /****************************************/
-+ /* Power up AND update implementation according to the
-+ * required signal (which may be different from the
-+ * default signal on connector). */
-+ struct core_link *link = dc->links[i];
-+ link->link_enc->funcs->hw_init(link->link_enc);
-+ }
-+
-+ for (i = 0; i < dc->res_pool.pipe_count; i++) {
-+ struct timing_generator *tg = dc->res_pool.timing_generators[i];
-+
-+ tg->funcs->disable_vga(tg);
-+
-+ /* Blank controller using driver code instead of
-+ * command table. */
-+ tg->funcs->set_blank(tg, true);
-+ }
-+
-+ for (i = 0; i < dc->res_pool.audio_count; i++) {
-+ struct audio *audio = dc->res_pool.audios[i];
-+
-+ if (dal_audio_power_up(audio) != AUDIO_RESULT_OK)
-+ dm_error("Failed audio power up!\n");
-+ }
-+
-+}
-+
- static const struct hw_sequencer_funcs dce110_funcs = {
-+ .init_hw = init_hw,
- .apply_ctx_to_hw = apply_ctx_to_hw,
- .reset_hw_ctx = reset_hw_ctx,
- .set_plane_config = set_plane_config,
-@@ -1613,7 +1668,7 @@ static const struct hw_sequencer_funcs dce110_funcs = {
- .set_blender_mode = dce110_set_blender_mode,
- .clock_gating_power_up = dal_dc_clock_gating_dce110_power_up,/*todo*/
- .set_display_clock = set_display_clock,
-- .set_displaymarks = set_displaymarks,
-+ .set_displaymarks = set_displaymarks
- };
-
- bool dce110_hw_sequencer_construct(struct core_dc *dc)
-diff --git a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_resource.c b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_resource.c
-index b39e2af..ef3f502 100644
---- a/drivers/gpu/drm/amd/dal/dc/dce110/dce110_resource.c
-+++ b/drivers/gpu/drm/amd/dal/dc/dce110/dce110_resource.c
-@@ -1188,6 +1188,10 @@ bool dce110_construct_resource_pool(
- pool->stream_enc_count++;
- }
-
-+ /* Create hardware sequencer */
-+ if (!dc_construct_hw_sequencer(as, dc))
-+ goto stream_enc_create_fail;
-+
- return true;
-
- stream_enc_create_fail:
-diff --git a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_resource.c b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_resource.c
-index 3b70643..078183b 100644
---- a/drivers/gpu/drm/amd/dal/dc/dce80/dce80_resource.c
-+++ b/drivers/gpu/drm/amd/dal/dc/dce80/dce80_resource.c
-@@ -1157,6 +1157,10 @@ bool dce80_construct_resource_pool(
- pool->stream_enc_count++;
- }
-
-+ /* Create hardware sequencer */
-+ if (!dc_construct_hw_sequencer(as, dc))
-+ goto stream_enc_create_fail;
-+
- return true;
-
- stream_enc_create_fail:
-diff --git a/drivers/gpu/drm/amd/dal/dc/inc/hw_sequencer.h b/drivers/gpu/drm/amd/dal/dc/inc/hw_sequencer.h
-index 490ee10..d801a60 100644
---- a/drivers/gpu/drm/amd/dal/dc/inc/hw_sequencer.h
-+++ b/drivers/gpu/drm/amd/dal/dc/inc/hw_sequencer.h
-@@ -37,6 +37,8 @@ enum pipe_gating_control {
-
- struct hw_sequencer_funcs {
-
-+ void (*init_hw)(struct core_dc *dc);
-+
- enum dc_status (*apply_ctx_to_hw)(
- struct core_dc *dc, struct validate_context *context);
-
---
-2.7.4
-