diff options
Diffstat (limited to 'meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4365-drm-amd-display-Don-t-return-ddc-result-and-read_byt.patch')
-rw-r--r-- | meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4365-drm-amd-display-Don-t-return-ddc-result-and-read_byt.patch | 141 |
1 files changed, 0 insertions, 141 deletions
diff --git a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4365-drm-amd-display-Don-t-return-ddc-result-and-read_byt.patch b/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4365-drm-amd-display-Don-t-return-ddc-result-and-read_byt.patch deleted file mode 100644 index d3f95179..00000000 --- a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4365-drm-amd-display-Don-t-return-ddc-result-and-read_byt.patch +++ /dev/null @@ -1,141 +0,0 @@ -From a1cae4e31f769e95aaafb9b98357a70d499fa362 Mon Sep 17 00:00:00 2001 -From: Harry Wentland <harry.wentland@amd.com> -Date: Tue, 24 Apr 2018 10:49:20 -0400 -Subject: [PATCH 4365/5725] drm/amd/display: Don't return ddc result and - read_bytes in same return value - -The two ranges overlap. - -Signed-off-by: Harry Wentland <harry.wentland@amd.com> -Acked-by: Alex Deucher <alexander.deucher@amd.com> ---- - .../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, 22 insertions(+), 13 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 e3110d6..559bd2a 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,21 +82,22 @@ 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; -- ssize_t read_bytes; -+ uint32_t read_bytes = msg->size; - - if (WARN_ON(msg->size > 16)) - return -E2BIG; - - switch (msg->request & ~DP_AUX_I2C_MOT) { - case DP_AUX_NATIVE_READ: -- read_bytes = dal_ddc_service_read_dpcd_data( -+ res = dal_ddc_service_read_dpcd_data( - TO_DM_AUX(aux)->ddc_service, - false, - I2C_MOT_UNDEF, - msg->address, - msg->buffer, -- msg->size); -- return read_bytes; -+ msg->size, -+ &read_bytes); -+ break; - case DP_AUX_NATIVE_WRITE: - res = dal_ddc_service_write_dpcd_data( - TO_DM_AUX(aux)->ddc_service, -@@ -107,14 +108,15 @@ static ssize_t dm_dp_aux_transfer(struct drm_dp_aux *aux, - msg->size); - break; - case DP_AUX_I2C_READ: -- read_bytes = dal_ddc_service_read_dpcd_data( -+ res = dal_ddc_service_read_dpcd_data( - TO_DM_AUX(aux)->ddc_service, - true, - mot, - msg->address, - msg->buffer, -- msg->size); -- return read_bytes; -+ msg->size, -+ &read_bytes); -+ break; - case DP_AUX_I2C_WRITE: - res = dal_ddc_service_write_dpcd_data( - TO_DM_AUX(aux)->ddc_service, -@@ -136,7 +138,9 @@ static ssize_t dm_dp_aux_transfer(struct drm_dp_aux *aux, - r == DDC_RESULT_SUCESSFULL); - #endif - -- return msg->size; -+ if (res != DDC_RESULT_SUCESSFULL) -+ return -EIO; -+ return read_bytes; - } - - 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 49c2fac..ae48d60 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,13 +629,14 @@ bool dal_ddc_service_query_ddc_data( - return ret; - } - --ssize_t dal_ddc_service_read_dpcd_data( -+enum ddc_result 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 len, -+ uint32_t *read) - { - struct aux_payload read_payload = { - .i2c_over_aux = i2c, -@@ -652,6 +653,8 @@ ssize_t 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; -@@ -661,7 +664,8 @@ ssize_t dal_ddc_service_read_dpcd_data( - ddc->ctx->i2caux, - ddc->ddc_pin, - &command)) { -- return (ssize_t)command.payloads->length; -+ *read = command.payloads->length; -+ return DDC_RESULT_SUCESSFULL; - } - - 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 090b7a8..30b3a08 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,13 +102,14 @@ bool dal_ddc_service_query_ddc_data( - uint8_t *read_buf, - uint32_t read_size); - --ssize_t dal_ddc_service_read_dpcd_data( -+enum ddc_result 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 len, -+ uint32_t *read); - - enum ddc_result dal_ddc_service_write_dpcd_data( - struct ddc_service *ddc, --- -2.7.4 - |