diff options
Diffstat (limited to 'meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4715-Revert-drm-amd-display-Don-t-return-ddc-result-and-r.patch')
-rw-r--r-- | meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4715-Revert-drm-amd-display-Don-t-return-ddc-result-and-r.patch | 151 |
1 files changed, 0 insertions, 151 deletions
diff --git a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4715-Revert-drm-amd-display-Don-t-return-ddc-result-and-r.patch b/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4715-Revert-drm-amd-display-Don-t-return-ddc-result-and-r.patch deleted file mode 100644 index dc708c8f..00000000 --- a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4715-Revert-drm-amd-display-Don-t-return-ddc-result-and-r.patch +++ /dev/null @@ -1,151 +0,0 @@ -From fdb158543496f6cf08f58aea7b75a95bcb68fb4a Mon Sep 17 00:00:00 2001 -From: Alex Deucher <alexander.deucher@amd.com> -Date: Tue, 10 Jul 2018 12:56:45 -0500 -Subject: [PATCH 4715/5725] Revert "drm/amd/display: Don't return ddc result - and read_bytes in same return value" - -This reverts commit 018d82e5f02ef3583411bcaa4e00c69786f46f19. - -This breaks DDC in certain cases. Revert for 4.18 and previous kernels. -For 4.19, this is fixed with the following more extensive patches: -drm/amd/display: Serialize is_dp_sink_present -drm/amd/display: Break out function to simply read aux reply -drm/amd/display: Return aux replies directly to DRM -drm/amd/display: Right shift AUX reply value sooner than later -drm/amd/display: Read AUX channel even if only status byte is returned - -Link: https://lists.freedesktop.org/archives/amd-gfx/2018-July/023788.html -Acked-by: Harry Wentland <harry.wentland@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> -Cc: stable@vger.kernel.org ---- - .../drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 20 ++++++++------------ - drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c | 10 +++------- - drivers/gpu/drm/amd/display/dc/inc/dc_link_ddc.h | 5 ++--- - 3 files changed, 13 insertions(+), 22 deletions(-) - -diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c -index 559bd2a..e3110d6 100644 ---- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c -+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c -@@ -82,22 +82,21 @@ static ssize_t dm_dp_aux_transfer(struct drm_dp_aux *aux, - enum i2c_mot_mode mot = (msg->request & DP_AUX_I2C_MOT) ? - I2C_MOT_TRUE : I2C_MOT_FALSE; - enum ddc_result res; -- uint32_t read_bytes = msg->size; -+ ssize_t read_bytes; - - if (WARN_ON(msg->size > 16)) - return -E2BIG; - - switch (msg->request & ~DP_AUX_I2C_MOT) { - case DP_AUX_NATIVE_READ: -- res = dal_ddc_service_read_dpcd_data( -+ read_bytes = dal_ddc_service_read_dpcd_data( - TO_DM_AUX(aux)->ddc_service, - false, - I2C_MOT_UNDEF, - msg->address, - msg->buffer, -- msg->size, -- &read_bytes); -- break; -+ msg->size); -+ return read_bytes; - case DP_AUX_NATIVE_WRITE: - res = dal_ddc_service_write_dpcd_data( - TO_DM_AUX(aux)->ddc_service, -@@ -108,15 +107,14 @@ static ssize_t dm_dp_aux_transfer(struct drm_dp_aux *aux, - msg->size); - break; - case DP_AUX_I2C_READ: -- res = dal_ddc_service_read_dpcd_data( -+ read_bytes = dal_ddc_service_read_dpcd_data( - TO_DM_AUX(aux)->ddc_service, - true, - mot, - msg->address, - msg->buffer, -- msg->size, -- &read_bytes); -- break; -+ msg->size); -+ return read_bytes; - case DP_AUX_I2C_WRITE: - res = dal_ddc_service_write_dpcd_data( - TO_DM_AUX(aux)->ddc_service, -@@ -138,9 +136,7 @@ static ssize_t dm_dp_aux_transfer(struct drm_dp_aux *aux, - r == DDC_RESULT_SUCESSFULL); - #endif - -- if (res != DDC_RESULT_SUCESSFULL) -- return -EIO; -- return read_bytes; -+ return msg->size; - } - - static enum drm_connector_status -diff --git a/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c b/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c -index ae48d60..49c2fac 100644 ---- a/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c -+++ b/drivers/gpu/drm/amd/display/dc/core/dc_link_ddc.c -@@ -629,14 +629,13 @@ bool dal_ddc_service_query_ddc_data( - return ret; - } - --enum ddc_result dal_ddc_service_read_dpcd_data( -+ssize_t dal_ddc_service_read_dpcd_data( - struct ddc_service *ddc, - bool i2c, - enum i2c_mot_mode mot, - uint32_t address, - uint8_t *data, -- uint32_t len, -- uint32_t *read) -+ uint32_t len) - { - struct aux_payload read_payload = { - .i2c_over_aux = i2c, -@@ -653,8 +652,6 @@ enum ddc_result dal_ddc_service_read_dpcd_data( - .mot = mot - }; - -- *read = 0; -- - if (len > DEFAULT_AUX_MAX_DATA_SIZE) { - BREAK_TO_DEBUGGER(); - return DDC_RESULT_FAILED_INVALID_OPERATION; -@@ -664,8 +661,7 @@ enum ddc_result dal_ddc_service_read_dpcd_data( - ddc->ctx->i2caux, - ddc->ddc_pin, - &command)) { -- *read = command.payloads->length; -- return DDC_RESULT_SUCESSFULL; -+ return (ssize_t)command.payloads->length; - } - - return DDC_RESULT_FAILED_OPERATION; -diff --git a/drivers/gpu/drm/amd/display/dc/inc/dc_link_ddc.h b/drivers/gpu/drm/amd/display/dc/inc/dc_link_ddc.h -index 30b3a08..090b7a8 100644 ---- a/drivers/gpu/drm/amd/display/dc/inc/dc_link_ddc.h -+++ b/drivers/gpu/drm/amd/display/dc/inc/dc_link_ddc.h -@@ -102,14 +102,13 @@ bool dal_ddc_service_query_ddc_data( - uint8_t *read_buf, - uint32_t read_size); - --enum ddc_result dal_ddc_service_read_dpcd_data( -+ssize_t dal_ddc_service_read_dpcd_data( - struct ddc_service *ddc, - bool i2c, - enum i2c_mot_mode mot, - uint32_t address, - uint8_t *data, -- uint32_t len, -- uint32_t *read); -+ uint32_t len); - - enum ddc_result dal_ddc_service_write_dpcd_data( - struct ddc_service *ddc, --- -2.7.4 - |