diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0762-drm-amd-dal-Expose-dig-index-display_signal-and-ddc-.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0762-drm-amd-dal-Expose-dig-index-display_signal-and-ddc-.patch | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/files/0762-drm-amd-dal-Expose-dig-index-display_signal-and-ddc-.patch b/common/recipes-kernel/linux/files/0762-drm-amd-dal-Expose-dig-index-display_signal-and-ddc-.patch new file mode 100644 index 00000000..4e966c54 --- /dev/null +++ b/common/recipes-kernel/linux/files/0762-drm-amd-dal-Expose-dig-index-display_signal-and-ddc-.patch @@ -0,0 +1,125 @@ +From 9783c01cb969c1c5310d2ceda0a62ea7d20a3f10 Mon Sep 17 00:00:00 2001 +From: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com> +Date: Tue, 2 Feb 2016 14:32:29 -0500 +Subject: [PATCH 0762/1110] drm/amd/dal: Expose dig index, display_signal and + ddc to amdgpu + +Signed-off-by: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com> +Acked-by: Harry Wentland <harry.wentland@amd.com> +--- + .../gpu/drm/amd/dal/dc/adapter/adapter_service.c | 2 +- + drivers/gpu/drm/amd/dal/dc/core/dc.c | 44 ++++++++++++++++++++++ + drivers/gpu/drm/amd/dal/dc/dc.h | 26 ++++++------- + 3 files changed, 58 insertions(+), 14 deletions(-) + +diff --git a/drivers/gpu/drm/amd/dal/dc/adapter/adapter_service.c b/drivers/gpu/drm/amd/dal/dc/adapter/adapter_service.c +index 3e07408..dd2f931 100644 +--- a/drivers/gpu/drm/amd/dal/dc/adapter/adapter_service.c ++++ b/drivers/gpu/drm/amd/dal/dc/adapter/adapter_service.c +@@ -92,7 +92,7 @@ static struct feature_source_entry feature_entry_table[] = { + * Driver uses SW I2C. + * Make Test uses HW I2C. + */ +- {FEATURE_RESTORE_USAGE_I2C_SW_ENGINE, true, true}, ++ {FEATURE_RESTORE_USAGE_I2C_SW_ENGINE, false, true}, + {FEATURE_USE_MAX_DISPLAY_CLK, false, true}, + {FEATURE_ALLOW_EDP_RESOURCE_SHARING, false, true}, + {FEATURE_SUPPORT_DP_YUV, false, true}, +diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc.c b/drivers/gpu/drm/amd/dal/dc/core/dc.c +index e6c7cac..0b8f158 100644 +--- a/drivers/gpu/drm/amd/dal/dc/core/dc.c ++++ b/drivers/gpu/drm/amd/dal/dc/core/dc.c +@@ -886,3 +886,47 @@ 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) ++{ ++ ++ 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; ++} +diff --git a/drivers/gpu/drm/amd/dal/dc/dc.h b/drivers/gpu/drm/amd/dal/dc/dc.h +index 1cd0883..61f13bd 100644 +--- a/drivers/gpu/drm/amd/dal/dc/dc.h ++++ b/drivers/gpu/drm/amd/dal/dc/dc.h +@@ -430,20 +430,10 @@ void dc_resume(const struct dc *dc); + + const struct ddc_service *dc_get_ddc_at_index( + struct dc *dc, uint32_t link_index); +-const struct dc_ddc* dc_get_ddc_from_sink(const struct dc_sink* sink); +-const struct dc_ddc* dc_get_ddc_from_link(const struct dc_link* link); +-bool dc_ddc_query_i2c(const struct dc_ddc* ddc, +- uint32_t address, +- uint8_t* write_buf, +- uint32_t write_size, +- uint8_t* read_buf, +- uint32_t read_size); +-bool dc_ddc_dpcd_read(const struct dc_ddc* ddc, uint32_t address, +- uint8_t* data, uint32_t len); +-bool dc_ddc_dpcd_write(const struct dc_ddc* ddc, uint32_t address, +- const uint8_t* data, uint32_t len); +- + ++/* ++ * DPCD access interfaces ++ */ + + bool dc_read_dpcd( + struct dc *dc, +@@ -459,4 +449,14 @@ bool dc_write_dpcd( + const uint8_t *data, + 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_ */ +-- +2.7.4 + |