diff options
Diffstat (limited to 'meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5254-drm-amd-display-Remove-redundant-i2c-structs.patch')
-rw-r--r-- | meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5254-drm-amd-display-Remove-redundant-i2c-structs.patch | 363 |
1 files changed, 0 insertions, 363 deletions
diff --git a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5254-drm-amd-display-Remove-redundant-i2c-structs.patch b/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5254-drm-amd-display-Remove-redundant-i2c-structs.patch deleted file mode 100644 index 08036b85..00000000 --- a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5254-drm-amd-display-Remove-redundant-i2c-structs.patch +++ /dev/null @@ -1,363 +0,0 @@ -From c676b307a635348ba6d9f459f576ce8aa682df63 Mon Sep 17 00:00:00 2001 -From: David Francis <David.Francis@amd.com> -Date: Fri, 3 Aug 2018 14:25:19 -0400 -Subject: [PATCH 5254/5725] drm/amd/display: Remove redundant i2c structs - -[Why] -The i2c code contains two structs that contain the same -information as i2c_payload - -[How] -Replace references to those structs with references to -i2c_payload - -dce_i2c_transaction_request->status was written to but never read, -so all references to it are removed - -Signed-off-by: David Francis <David.Francis@amd.com> -Reviewed-by: Jordan Lazare <Jordan.Lazare@amd.com> -Acked-by: Leo Li <sunpeng.li@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> ---- - drivers/gpu/drm/amd/display/dc/dce/dce_i2c.h | 33 ---------- - drivers/gpu/drm/amd/display/dc/dce/dce_i2c_hw.c | 84 +++++-------------------- - drivers/gpu/drm/amd/display/dc/dce/dce_i2c_hw.h | 5 -- - drivers/gpu/drm/amd/display/dc/dce/dce_i2c_sw.c | 83 ++++-------------------- - 4 files changed, 28 insertions(+), 177 deletions(-) - -diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_i2c.h b/drivers/gpu/drm/amd/display/dc/dce/dce_i2c.h -index d655f89..a171c5c 100644 ---- a/drivers/gpu/drm/amd/display/dc/dce/dce_i2c.h -+++ b/drivers/gpu/drm/amd/display/dc/dce/dce_i2c.h -@@ -30,39 +30,6 @@ - #include "dce_i2c_hw.h" - #include "dce_i2c_sw.h" - --enum dce_i2c_transaction_status { -- DCE_I2C_TRANSACTION_STATUS_UNKNOWN = (-1L), -- DCE_I2C_TRANSACTION_STATUS_SUCCEEDED, -- DCE_I2C_TRANSACTION_STATUS_FAILED_CHANNEL_BUSY, -- DCE_I2C_TRANSACTION_STATUS_FAILED_TIMEOUT, -- DCE_I2C_TRANSACTION_STATUS_FAILED_PROTOCOL_ERROR, -- DCE_I2C_TRANSACTION_STATUS_FAILED_NACK, -- DCE_I2C_TRANSACTION_STATUS_FAILED_INCOMPLETE, -- DCE_I2C_TRANSACTION_STATUS_FAILED_OPERATION, -- DCE_I2C_TRANSACTION_STATUS_FAILED_INVALID_OPERATION, -- DCE_I2C_TRANSACTION_STATUS_FAILED_BUFFER_OVERFLOW, -- DCE_I2C_TRANSACTION_STATUS_FAILED_HPD_DISCON --}; -- --enum dce_i2c_transaction_operation { -- DCE_I2C_TRANSACTION_READ, -- DCE_I2C_TRANSACTION_WRITE --}; -- --struct dce_i2c_transaction_payload { -- enum dce_i2c_transaction_address_space address_space; -- uint32_t address; -- uint32_t length; -- uint8_t *data; --}; -- --struct dce_i2c_transaction_request { -- enum dce_i2c_transaction_operation operation; -- struct dce_i2c_transaction_payload payload; -- enum dce_i2c_transaction_status status; --}; -- -- - bool dce_i2c_submit_command( - struct resource_pool *pool, - struct ddc *ddc, -diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_i2c_hw.c b/drivers/gpu/drm/amd/display/dc/dce/dce_i2c_hw.c -index cd7da59..2800d3f 100644 ---- a/drivers/gpu/drm/amd/display/dc/dce/dce_i2c_hw.c -+++ b/drivers/gpu/drm/amd/display/dc/dce/dce_i2c_hw.c -@@ -129,7 +129,7 @@ static uint32_t get_speed( - - static void process_channel_reply( - struct dce_i2c_hw *dce_i2c_hw, -- struct i2c_reply_transaction_data *reply) -+ struct i2c_payload *reply) - { - uint32_t length = reply->length; - uint8_t *buffer = reply->data; -@@ -522,9 +522,9 @@ static uint32_t get_transaction_timeout_hw( - return period_timeout * num_of_clock_stretches; - } - --bool dce_i2c_hw_engine_submit_request( -+bool dce_i2c_hw_engine_submit_payload( - struct dce_i2c_hw *dce_i2c_hw, -- struct dce_i2c_transaction_request *dce_i2c_request, -+ struct i2c_payload *payload, - bool middle_of_transaction) - { - -@@ -541,46 +541,36 @@ bool dce_i2c_hw_engine_submit_request( - * the number of free bytes in HW buffer (minus one for address) - */ - -- if (dce_i2c_request->payload.length >= -+ if (payload->length >= - get_hw_buffer_available_size(dce_i2c_hw)) { -- dce_i2c_request->status = -- DCE_I2C_TRANSACTION_STATUS_FAILED_BUFFER_OVERFLOW; - return false; - } - -- if (dce_i2c_request->operation == DCE_I2C_TRANSACTION_READ) -+ if (!payload->write) - request.action = middle_of_transaction ? - DCE_I2C_TRANSACTION_ACTION_I2C_READ_MOT : - DCE_I2C_TRANSACTION_ACTION_I2C_READ; -- else if (dce_i2c_request->operation == DCE_I2C_TRANSACTION_WRITE) -+ else - request.action = middle_of_transaction ? - DCE_I2C_TRANSACTION_ACTION_I2C_WRITE_MOT : - DCE_I2C_TRANSACTION_ACTION_I2C_WRITE; -- else { -- dce_i2c_request->status = -- DCE_I2C_TRANSACTION_STATUS_FAILED_INVALID_OPERATION; -- /* [anaumov] in DAL2, there was no "return false" */ -- return false; -- } - -- request.address = (uint8_t) dce_i2c_request->payload.address; -- request.length = dce_i2c_request->payload.length; -- request.data = dce_i2c_request->payload.data; -+ -+ request.address = (uint8_t) ((payload->address << 1) | !payload->write); -+ request.length = payload->length; -+ request.data = payload->data; - - /* obtain timeout value before submitting request */ - - transaction_timeout = get_transaction_timeout_hw( -- dce_i2c_hw, dce_i2c_request->payload.length + 1); -+ dce_i2c_hw, payload->length + 1); - - submit_channel_request_hw( - dce_i2c_hw, &request); - - if ((request.status == I2C_CHANNEL_OPERATION_FAILED) || -- (request.status == I2C_CHANNEL_OPERATION_ENGINE_BUSY)) { -- dce_i2c_request->status = -- DCE_I2C_TRANSACTION_STATUS_FAILED_CHANNEL_BUSY; -+ (request.status == I2C_CHANNEL_OPERATION_ENGINE_BUSY)) - return false; -- } - - /* wait until transaction proceed */ - -@@ -591,37 +581,11 @@ bool dce_i2c_hw_engine_submit_request( - - /* update transaction status */ - -- switch (operation_result) { -- case I2C_CHANNEL_OPERATION_SUCCEEDED: -- dce_i2c_request->status = -- DCE_I2C_TRANSACTION_STATUS_SUCCEEDED; -+ if (operation_result == I2C_CHANNEL_OPERATION_SUCCEEDED) - result = true; -- break; -- case I2C_CHANNEL_OPERATION_NO_RESPONSE: -- dce_i2c_request->status = -- DCE_I2C_TRANSACTION_STATUS_FAILED_NACK; -- break; -- case I2C_CHANNEL_OPERATION_TIMEOUT: -- dce_i2c_request->status = -- DCE_I2C_TRANSACTION_STATUS_FAILED_TIMEOUT; -- break; -- case I2C_CHANNEL_OPERATION_FAILED: -- dce_i2c_request->status = -- DCE_I2C_TRANSACTION_STATUS_FAILED_INCOMPLETE; -- break; -- default: -- dce_i2c_request->status = -- DCE_I2C_TRANSACTION_STATUS_FAILED_OPERATION; -- } - -- if (result && (dce_i2c_request->operation == DCE_I2C_TRANSACTION_READ)) { -- struct i2c_reply_transaction_data reply; -- -- reply.data = dce_i2c_request->payload.data; -- reply.length = dce_i2c_request->payload.length; -- -- process_channel_reply(dce_i2c_hw, &reply); -- } -+ if (result && (!payload->write)) -+ process_channel_reply(dce_i2c_hw, payload); - - return result; - } -@@ -644,22 +608,8 @@ bool dce_i2c_submit_command_hw( - - struct i2c_payload *payload = cmd->payloads + index_of_payload; - -- struct dce_i2c_transaction_request request = { 0 }; -- -- request.operation = payload->write ? -- DCE_I2C_TRANSACTION_WRITE : -- DCE_I2C_TRANSACTION_READ; -- -- request.payload.address_space = -- DCE_I2C_TRANSACTION_ADDRESS_SPACE_I2C; -- request.payload.address = (payload->address << 1) | -- !payload->write; -- request.payload.length = payload->length; -- request.payload.data = payload->data; -- -- -- if (!dce_i2c_hw_engine_submit_request( -- dce_i2c_hw, &request, mot)) { -+ if (!dce_i2c_hw_engine_submit_payload( -+ dce_i2c_hw, payload, mot)) { - result = false; - break; - } -diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_i2c_hw.h b/drivers/gpu/drm/amd/display/dc/dce/dce_i2c_hw.h -index 742c1da..7f19bb4 100644 ---- a/drivers/gpu/drm/amd/display/dc/dce/dce_i2c_hw.h -+++ b/drivers/gpu/drm/amd/display/dc/dce/dce_i2c_hw.h -@@ -236,11 +236,6 @@ struct i2c_request_transaction_data { - uint8_t *data; - }; - --struct i2c_reply_transaction_data { -- uint32_t length; -- uint8_t *data; --}; -- - struct dce_i2c_hw { - struct ddc *ddc; - uint32_t original_speed; -diff --git a/drivers/gpu/drm/amd/display/dc/dce/dce_i2c_sw.c b/drivers/gpu/drm/amd/display/dc/dce/dce_i2c_sw.c -index ab11129..f026669 100644 ---- a/drivers/gpu/drm/amd/display/dc/dce/dce_i2c_sw.c -+++ b/drivers/gpu/drm/amd/display/dc/dce/dce_i2c_sw.c -@@ -70,13 +70,6 @@ static void release_engine_dce_sw( - dce_i2c_sw->ddc = NULL; - } - --enum i2c_channel_operation_result dce_i2c_sw_engine_get_channel_status( -- struct dce_i2c_sw *engine, -- uint8_t *returned_bytes) --{ -- /* No arbitration with VBIOS is performed since DCE 6.0 */ -- return I2C_CHANNEL_OPERATION_SUCCEEDED; --} - static bool get_hw_supported_ddc_line( - struct ddc *ddc, - enum gpio_ddc_line *line) -@@ -469,73 +462,33 @@ void dce_i2c_sw_engine_submit_channel_request( - I2C_CHANNEL_OPERATION_SUCCEEDED : - I2C_CHANNEL_OPERATION_FAILED; - } --bool dce_i2c_sw_engine_submit_request( -+bool dce_i2c_sw_engine_submit_payload( - struct dce_i2c_sw *engine, -- struct dce_i2c_transaction_request *dce_i2c_request, -+ struct i2c_payload *payload, - bool middle_of_transaction) - { - struct i2c_request_transaction_data request; -- bool operation_succeeded = false; - -- if (dce_i2c_request->operation == DCE_I2C_TRANSACTION_READ) -+ if (!payload->write) - request.action = middle_of_transaction ? - DCE_I2C_TRANSACTION_ACTION_I2C_READ_MOT : - DCE_I2C_TRANSACTION_ACTION_I2C_READ; -- else if (dce_i2c_request->operation == DCE_I2C_TRANSACTION_WRITE) -+ else - request.action = middle_of_transaction ? - DCE_I2C_TRANSACTION_ACTION_I2C_WRITE_MOT : - DCE_I2C_TRANSACTION_ACTION_I2C_WRITE; -- else { -- dce_i2c_request->status = -- DCE_I2C_TRANSACTION_STATUS_FAILED_INVALID_OPERATION; -- /* in DAL2, there was no "return false" */ -- return false; -- } - -- request.address = (uint8_t)dce_i2c_request->payload.address; -- request.length = dce_i2c_request->payload.length; -- request.data = dce_i2c_request->payload.data; -+ request.address = (uint8_t) ((payload->address << 1) | !payload->write); -+ request.length = payload->length; -+ request.data = payload->data; - - dce_i2c_sw_engine_submit_channel_request(engine, &request); - - if ((request.status == I2C_CHANNEL_OPERATION_ENGINE_BUSY) || - (request.status == I2C_CHANNEL_OPERATION_FAILED)) -- dce_i2c_request->status = -- DCE_I2C_TRANSACTION_STATUS_FAILED_CHANNEL_BUSY; -- else { -- enum i2c_channel_operation_result operation_result; -- -- do { -- operation_result = -- dce_i2c_sw_engine_get_channel_status(engine, NULL); -- -- switch (operation_result) { -- case I2C_CHANNEL_OPERATION_SUCCEEDED: -- dce_i2c_request->status = -- DCE_I2C_TRANSACTION_STATUS_SUCCEEDED; -- operation_succeeded = true; -- break; -- case I2C_CHANNEL_OPERATION_NO_RESPONSE: -- dce_i2c_request->status = -- DCE_I2C_TRANSACTION_STATUS_FAILED_NACK; -- break; -- case I2C_CHANNEL_OPERATION_TIMEOUT: -- dce_i2c_request->status = -- DCE_I2C_TRANSACTION_STATUS_FAILED_TIMEOUT; -- break; -- case I2C_CHANNEL_OPERATION_FAILED: -- dce_i2c_request->status = -- DCE_I2C_TRANSACTION_STATUS_FAILED_INCOMPLETE; -- break; -- default: -- dce_i2c_request->status = -- DCE_I2C_TRANSACTION_STATUS_FAILED_OPERATION; -- break; -- } -- } while (operation_result == I2C_CHANNEL_OPERATION_ENGINE_BUSY); -- } -+ return false; - -- return operation_succeeded; -+ return true; - } - bool dce_i2c_submit_command_sw( - struct resource_pool *pool, -@@ -555,22 +508,8 @@ bool dce_i2c_submit_command_sw( - - struct i2c_payload *payload = cmd->payloads + index_of_payload; - -- struct dce_i2c_transaction_request request = { 0 }; -- -- request.operation = payload->write ? -- DCE_I2C_TRANSACTION_WRITE : -- DCE_I2C_TRANSACTION_READ; -- -- request.payload.address_space = -- DCE_I2C_TRANSACTION_ADDRESS_SPACE_I2C; -- request.payload.address = (payload->address << 1) | -- !payload->write; -- request.payload.length = payload->length; -- request.payload.data = payload->data; -- -- -- if (!dce_i2c_sw_engine_submit_request( -- dce_i2c_sw, &request, mot)) { -+ if (!dce_i2c_sw_engine_submit_payload( -+ dce_i2c_sw, payload, mot)) { - result = false; - break; - } --- -2.7.4 - |