diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0777-drm-amd-dal-fix-dependency-on-DC.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0777-drm-amd-dal-fix-dependency-on-DC.patch | 194 |
1 files changed, 194 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0777-drm-amd-dal-fix-dependency-on-DC.patch b/common/recipes-kernel/linux/files/0777-drm-amd-dal-fix-dependency-on-DC.patch new file mode 100644 index 00000000..55060865 --- /dev/null +++ b/common/recipes-kernel/linux/files/0777-drm-amd-dal-fix-dependency-on-DC.patch @@ -0,0 +1,194 @@ +From 7030579959edecd65fd7b6986191438cfcf0c8e6 Mon Sep 17 00:00:00 2001 +From: Mykola Lysenko <Mykola.Lysenko@amd.com> +Date: Fri, 5 Feb 2016 09:35:55 -0500 +Subject: [PATCH 0777/1110] drm/amd/dal: fix dependency on DC + +Signed-off-by: Mykola Lysenko <Mykola.Lysenko@amd.com> +Acked-by: Jordan Lazare <Jordan.Lazare@amd.com> +--- + drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c | 2 ++ + drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.h | 1 + + drivers/gpu/drm/amd/dal/dc/core/dc.c | 44 +++------------------------ + drivers/gpu/drm/amd/dal/dc/core/dc_link.c | 8 +++++ + drivers/gpu/drm/amd/dal/dc/dc.h | 22 ++++++++------ + drivers/gpu/drm/amd/dal/dc/inc/core_types.h | 2 ++ + 6 files changed, 30 insertions(+), 49 deletions(-) + +diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c +index c758fc6..6329658 100644 +--- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c ++++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c +@@ -1474,3 +1474,5 @@ bool amdgpu_dm_release_dal_lock(struct amdgpu_display_manager *dm) + /* TODO */ + return true; + } ++ ++ +diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.h b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.h +index c4ae90b..4a9b1c3 100644 +--- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.h ++++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.h +@@ -47,6 +47,7 @@ + */ + + #include "irq_types.h" ++#include "signal_types.h" + + /* Forward declarations */ + struct amdgpu_device; +diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc.c b/drivers/gpu/drm/amd/dal/dc/core/dc.c +index 0af63f8..d788917 100644 +--- a/drivers/gpu/drm/amd/dal/dc/core/dc.c ++++ b/drivers/gpu/drm/amd/dal/dc/core/dc.c +@@ -887,46 +887,10 @@ void dc_link_remove_remote_sink(const struct dc_link *link, const struct dc_sink + } + } + +-uint8_t dc_get_dig_index(const struct dc_stream *stream) +-{ +- +- struct core_stream *core_stream = DC_STREAM_TO_CORE(stream); +- +- switch (core_stream->stream_enc->id) { +- case ENGINE_ID_DIGA: +- return 0; +- case ENGINE_ID_DIGB: +- return 1; +- case ENGINE_ID_DIGC: +- return 2; +- case ENGINE_ID_DIGD: +- return 3; +- case ENGINE_ID_DIGE: +- return 4; +- case ENGINE_ID_DIGF: +- return 5; +- case ENGINE_ID_DIGG: +- return 6; +- default: +- return -1; +- } +- +- return 0; +-} +- +-enum gpio_ddc_line dc_get_ddc_line( +- const struct dc_stream *stream) ++const struct dc_stream_status *dc_stream_get_status( ++ const struct dc_stream *dc_stream) + { ++ struct core_stream *stream = DC_STREAM_TO_CORE(dc_stream); + +- struct core_sink *core_sink = DC_SINK_TO_CORE(stream->sink); +- struct ddc *ddc_line = dal_ddc_service_get_ddc_pin( +- core_sink->link->ddc); +- +- return dal_ddc_get_line(ddc_line); +-} +- +-enum signal_type dc_get_display_signal( +- const struct dc_stream *stream) +-{ +- return stream->sink->sink_signal; ++ return &stream->status; + } +diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc_link.c b/drivers/gpu/drm/amd/dal/dc/core/dc_link.c +index 9e04b45..84ee1b4 100644 +--- a/drivers/gpu/drm/amd/dal/dc/core/dc_link.c ++++ b/drivers/gpu/drm/amd/dal/dc/core/dc_link.c +@@ -977,6 +977,10 @@ static bool construct( + ddc_service_init_data.id = link->link_id; + link->ddc = dal_ddc_service_create(&ddc_service_init_data); + ++ link->public.ddc_hw_inst = ++ dal_ddc_get_line( ++ dal_ddc_service_get_ddc_pin(link->ddc)); ++ + if (NULL == link->ddc) { + DC_ERROR("Failed to create ddc_service!\n"); + goto create_fail; +@@ -999,6 +1003,8 @@ static bool construct( + goto create_fail; + } + ++ link->public.link_enc_hw_inst = link->link_enc->transmitter; ++ + dal_adapter_service_get_integrated_info(as, &info); + + for (i = 0; ; i++) { +@@ -1621,6 +1627,7 @@ void core_link_enable_stream( + } + + dc->hwss.enable_stream(stream); ++ stream->status.link = &link->public; + + if (stream->signal == SIGNAL_TYPE_DISPLAY_PORT_MST) + allocate_mst_payload(stream); +@@ -1635,6 +1642,7 @@ void core_link_disable_stream( + if (stream->signal == SIGNAL_TYPE_DISPLAY_PORT_MST) + deallocate_mst_payload(stream); + ++ stream->status.link = NULL; + dc->hwss.disable_stream(stream); + + disable_link(stream); +diff --git a/drivers/gpu/drm/amd/dal/dc/dc.h b/drivers/gpu/drm/amd/dal/dc/dc.h +index c09af66..cc3395d 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dc.h ++++ b/drivers/gpu/drm/amd/dal/dc/dc.h +@@ -264,6 +264,16 @@ void dc_stream_release(struct dc_stream *dc_stream); + void dc_update_stream(const struct dc_stream *dc_stream, + struct rect *src, struct rect *dst); + ++struct dc_stream_status { ++ /* ++ * link this stream passes through ++ */ ++ const struct dc_link *link; ++}; ++ ++const struct dc_stream_status *dc_stream_get_status( ++ const struct dc_stream *dc_stream); ++ + /******************************************************************************* + * Link Interfaces + ******************************************************************************/ +@@ -289,6 +299,9 @@ struct dc_link { + struct dc_link_settings max_link_setting; + struct dc_link_settings cur_link_settings; + struct dc_lane_settings cur_lane_setting; ++ ++ uint8_t ddc_hw_inst; ++ uint8_t link_enc_hw_inst; + }; + + /* +@@ -460,13 +473,4 @@ bool dc_write_dpcd( + uint32_t size); + + +-uint8_t dc_get_dig_index(const struct dc_stream *stream); +- +-enum signal_type dc_get_display_signal( +- const struct dc_stream *stream); +- +-enum gpio_ddc_line dc_get_ddc_line( +- const struct dc_stream *stream); +- +- + #endif /* DC_INTERFACE_H_ */ +diff --git a/drivers/gpu/drm/amd/dal/dc/inc/core_types.h b/drivers/gpu/drm/amd/dal/dc/inc/core_types.h +index bd7bd2b..866853b 100644 +--- a/drivers/gpu/drm/amd/dal/dc/inc/core_types.h ++++ b/drivers/gpu/drm/amd/dal/dc/inc/core_types.h +@@ -128,6 +128,8 @@ struct core_stream { + + struct audio_output audio_output; + struct dc_context *ctx; ++ ++ struct dc_stream_status status; + }; + + +-- +2.7.4 + |