diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0582-drm-amd-dal-Add-callback-to-DM-for-aux-access.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0582-drm-amd-dal-Add-callback-to-DM-for-aux-access.patch | 236 |
1 files changed, 0 insertions, 236 deletions
diff --git a/common/recipes-kernel/linux/files/0582-drm-amd-dal-Add-callback-to-DM-for-aux-access.patch b/common/recipes-kernel/linux/files/0582-drm-amd-dal-Add-callback-to-DM-for-aux-access.patch deleted file mode 100644 index 5a3f3610..00000000 --- a/common/recipes-kernel/linux/files/0582-drm-amd-dal-Add-callback-to-DM-for-aux-access.patch +++ /dev/null @@ -1,236 +0,0 @@ -From 930261e14dcdc6f224fe8f4336eacb3b80533d21 Mon Sep 17 00:00:00 2001 -From: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com> -Date: Mon, 7 Dec 2015 13:27:26 -0500 -Subject: [PATCH 0582/1110] drm/amd/dal: Add callback to DM for aux access - -Signed-off-by: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com> -Signed-off-by: Harry Wentland <harry.wentland@amd.com> -Acked-by: Harry Wentland <harry.wentland@amd.com> ---- - .../gpu/drm/amd/dal/amdgpu_dm/amdgpu_dc_helpers.c | 41 ++++++++++++++++++++++ - drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c | 9 ++--- - drivers/gpu/drm/amd/dal/dc/core/dc.c | 19 +++++++--- - drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c | 12 +++---- - drivers/gpu/drm/amd/dal/dc/dc_helpers.h | 14 ++++++++ - drivers/gpu/drm/amd/dal/dc/dcs/ddc_service.c | 2 ++ - drivers/gpu/drm/amd/dal/dc/dcs/ddc_service.h | 11 ++++++ - 7 files changed, 91 insertions(+), 17 deletions(-) - -diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dc_helpers.c b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dc_helpers.c -index 2554e1a..7d3b2d3 100644 ---- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dc_helpers.c -+++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dc_helpers.c -@@ -457,3 +457,44 @@ void dc_helpers_dp_mst_stop_top_mgr( - - aconnector->is_mst_connector = false; - } -+ -+bool dc_helper_dp_read_dpcd( -+ struct dc_context *ctx, -+ const struct dc_link *link, -+ uint32_t address, -+ uint8_t *data, -+ uint32_t size) { -+ -+ -+ struct amdgpu_device *adev = ctx->driver_context; -+ struct drm_device *dev = adev->ddev; -+ struct amdgpu_connector *aconnector = get_connector_for_link(dev, link); -+ -+ if (!aconnector) { -+ DRM_ERROR("Failed to found connector for link!"); -+ return false; -+ } -+ -+ return drm_dp_dpcd_read(&aconnector->dm_dp_aux.aux, address, -+ data, size) > 0; -+} -+ -+bool dc_helper_dp_write_dpcd( -+ struct dc_context *ctx, -+ const struct dc_link *link, -+ uint32_t address, -+ const uint8_t *data, -+ uint32_t size) { -+ -+ struct amdgpu_device *adev = ctx->driver_context; -+ struct drm_device *dev = adev->ddev; -+ struct amdgpu_connector *aconnector = get_connector_for_link(dev, link); -+ -+ if (!aconnector) { -+ DRM_ERROR("Failed to found connector for link!"); -+ return false; -+ } -+ -+ return drm_dp_dpcd_write(&aconnector->dm_dp_aux.aux, address, -+ (uint8_t *)data, size) > 0; -+} -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 ab546a7..9bb8165 100644 ---- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c -+++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm.c -@@ -795,20 +795,15 @@ static void handle_hpd_rx_irq(void *param) - struct drm_connector *connector = &aconnector->base; - struct drm_device *dev = connector->dev; - -- if (aconnector->mst_mgr.mst_state) { -- mutex_lock(&aconnector->mst_mgr.aux->hw_mutex); -- } -- - if (dc_link_handle_hpd_rx_irq(aconnector->dc_link) && -- !aconnector->mst_mgr.mst_state) { -+ !aconnector->is_mst_connector) { - /* Downstream Port status changed. */ - dc_link_detect(aconnector->dc_link); - amdgpu_dm_update_connector_after_detect(aconnector); - drm_helper_hpd_irq_event(dev); - } - -- if (aconnector->mst_mgr.mst_state) { -- mutex_unlock(&aconnector->mst_mgr.aux->hw_mutex); -+ if (aconnector->is_mst_connector) { - dc_helpers_dp_mst_handle_mst_hpd_rx_irq(param); - } - } -diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc.c b/drivers/gpu/drm/amd/dal/dc/core/dc.c -index 7fc9f17..d8c0799 100644 ---- a/drivers/gpu/drm/amd/dal/dc/core/dc.c -+++ b/drivers/gpu/drm/amd/dal/dc/core/dc.c -@@ -43,6 +43,8 @@ - #include "opp.h" - #include "link_encoder.h" - -+#include "dcs/ddc_service.h" -+ - /******************************************************************************* - * Private structures - ******************************************************************************/ -@@ -912,6 +914,7 @@ void dc_print_sync_report( - * data from Step 1). */ - } - -+/*AG TODO Create callbacks for WIN DM */ - bool dc_read_dpcd( - struct dc *dc, - uint32_t link_index, -@@ -921,9 +924,13 @@ bool dc_read_dpcd( - { - struct core_link *link = - DC_LINK_TO_LINK(dc_get_link_at_index(dc, link_index)); -- enum dc_status r = core_link_read_dpcd(link, address, data, size); - -- return r == DC_OK; -+ enum ddc_result r = dal_ddc_service_read_dpcd_data( -+ link->ddc, -+ address, -+ data, -+ size); -+ return r == DDC_RESULT_SUCESSFULL; - } - - bool dc_write_dpcd( -@@ -935,9 +942,13 @@ bool dc_write_dpcd( - { - struct core_link *link = - DC_LINK_TO_LINK(dc_get_link_at_index(dc, link_index)); -- enum dc_status r = core_link_write_dpcd(link, address, data, size); - -- return r == DC_OK; -+ enum ddc_result r = dal_ddc_service_write_dpcd_data( -+ link->ddc, -+ address, -+ data, -+ size); -+ return r == DDC_RESULT_SUCESSFULL; - } - - bool dc_link_add_sink( -diff --git a/drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c b/drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c -index 4c9eae4..3a80a10 100644 ---- a/drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c -+++ b/drivers/gpu/drm/amd/dal/dc/core/dc_link_hwss.c -@@ -20,9 +20,9 @@ enum dc_status core_link_read_dpcd( - uint8_t *data, - uint32_t size) - { -- if (dal_ddc_service_read_dpcd_data(link->ddc, address, data, size) -- != DDC_RESULT_SUCESSFULL) -- return DC_ERROR_UNEXPECTED; -+ if (!dc_helper_dp_read_dpcd(link->ctx, -+ &link->public, address, data, size)) -+ return DC_ERROR_UNEXPECTED; - - return DC_OK; - } -@@ -33,9 +33,9 @@ enum dc_status core_link_write_dpcd( - const uint8_t *data, - uint32_t size) - { -- if (dal_ddc_service_write_dpcd_data(link->ddc, address, data, size) -- != DDC_RESULT_SUCESSFULL) -- return DC_ERROR_UNEXPECTED; -+ if (!dc_helper_dp_write_dpcd(link->ctx, -+ &link->public, address, data, size)) -+ return DC_ERROR_UNEXPECTED; - - return DC_OK; - } -diff --git a/drivers/gpu/drm/amd/dal/dc/dc_helpers.h b/drivers/gpu/drm/amd/dal/dc/dc_helpers.h -index c0fbb65..66f4d2d 100644 ---- a/drivers/gpu/drm/amd/dal/dc/dc_helpers.h -+++ b/drivers/gpu/drm/amd/dal/dc/dc_helpers.h -@@ -72,4 +72,18 @@ void dc_helpers_dp_mst_stop_top_mgr( - struct dc_context *ctx, - const struct dc_link *link); - -+bool dc_helper_dp_read_dpcd( -+ struct dc_context *ctx, -+ const struct dc_link *link, -+ uint32_t address, -+ uint8_t *data, -+ uint32_t size); -+ -+bool dc_helper_dp_write_dpcd( -+ struct dc_context *ctx, -+ const struct dc_link *link, -+ uint32_t address, -+ const uint8_t *data, -+ uint32_t size); -+ - #endif /* __DC_HELPERS__ */ -diff --git a/drivers/gpu/drm/amd/dal/dc/dcs/ddc_service.c b/drivers/gpu/drm/amd/dal/dc/dcs/ddc_service.c -index 5436704..854ff3f 100644 ---- a/drivers/gpu/drm/amd/dal/dc/dcs/ddc_service.c -+++ b/drivers/gpu/drm/amd/dal/dc/dcs/ddc_service.c -@@ -564,6 +564,8 @@ static uint32_t query_edid_block( - #define DDC_DPCD_EDID_TEST_MASK 0x04 - #define DDC_DPCD_TEST_REQUEST_ADDRESS 0x218 - -+/* AG TODO GO throug DM callback here like for DPCD */ -+ - static void write_dp_edid_checksum( - struct ddc_service *ddc, - uint8_t checksum) -diff --git a/drivers/gpu/drm/amd/dal/dc/dcs/ddc_service.h b/drivers/gpu/drm/amd/dal/dc/dcs/ddc_service.h -index e5217b7..3bf2a9e 100644 ---- a/drivers/gpu/drm/amd/dal/dc/dcs/ddc_service.h -+++ b/drivers/gpu/drm/amd/dal/dc/dcs/ddc_service.h -@@ -35,4 +35,15 @@ void dal_ddc_service_set_ddc_pin( - struct ddc *dal_ddc_service_get_ddc_pin(struct ddc_service *ddc_service); - void dal_ddc_service_reset_dp_receiver_id_info(struct ddc_service *ddc_service); - -+enum ddc_result dal_ddc_service_read_dpcd_data( -+ struct ddc_service *ddc, -+ uint32_t address, -+ uint8_t *data, -+ uint32_t len); -+enum ddc_result dal_ddc_service_write_dpcd_data( -+ struct ddc_service *ddc, -+ uint32_t address, -+ const uint8_t *data, -+ uint32_t len); -+ - #endif /* __DAL_DDC_SERVICE_H__ */ --- -2.7.4 - |