aboutsummaryrefslogtreecommitdiffstats
path: root/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5256-drm-amd-display-Flatten-unnecessary-i2c-functions.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5256-drm-amd-display-Flatten-unnecessary-i2c-functions.patch')
-rw-r--r--meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5256-drm-amd-display-Flatten-unnecessary-i2c-functions.patch212
1 files changed, 0 insertions, 212 deletions
diff --git a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5256-drm-amd-display-Flatten-unnecessary-i2c-functions.patch b/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5256-drm-amd-display-Flatten-unnecessary-i2c-functions.patch
deleted file mode 100644
index 172e8799..00000000
--- a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/5256-drm-amd-display-Flatten-unnecessary-i2c-functions.patch
+++ /dev/null
@@ -1,212 +0,0 @@
-From 96288a7d1c7be36f49c31fba17f25b192223ae73 Mon Sep 17 00:00:00 2001
-From: David Francis <David.Francis@amd.com>
-Date: Fri, 3 Aug 2018 13:24:28 -0400
-Subject: [PATCH 5256/5725] drm/amd/display: Flatten unnecessary i2c functions
-
-[Why]
-The dce_i2c_hw code contained four funtcions that were only
-called in one place and did not have a clearly delineated
-purpose.
-
-[How]
-Inline these functions, keeping the same functionality.
-
-This is not a functional change.
-
-The functions disable_i2c_hw_engine and release_engine_dce_hw were
-pulled into their respective callers.
-
-The most interesting part of this change is the acquire functions.
-dce_i2c_hw_engine_acquire_engine was pulled into
-dce_i2c_engine_acquire_hw, and dce_i2c_engine_acquire_hw was pulled
-into acquire_i2c_hw_engine.
-
-Some notes to show that this change is not functional:
--Failure conditions in any function resulted in a cascade of calls that
-ended in a 'return NULL'.
-Those are replaced with a direct 'return NULL'.
-
--The variable result is the one from dce_i2c_hw_engine_acquire_engine.
-The boolean result used as part of return logic was removed.
-
--As the second half of dce_i2c_hw_engine_acquire_engine is only executed
-if that function is returning true and therefore exiting the do-while
-loop in dce_i2c_engine_acquire_hw, those lines were moved outside
-of the loop.
-
-Signed-off-by: David Francis <David.Francis@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_hw.c | 111 ++++++++----------------
- 1 file changed, 34 insertions(+), 77 deletions(-)
-
-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 2800d3f..40f2d6e 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
-@@ -36,12 +36,6 @@
- #define FN(reg_name, field_name) \
- dce_i2c_hw->shifts->field_name, dce_i2c_hw->masks->field_name
-
--static void disable_i2c_hw_engine(
-- struct dce_i2c_hw *dce_i2c_hw)
--{
-- REG_UPDATE_N(SETUP, 1, FN(SETUP, DC_I2C_DDC1_ENABLE), 0);
--}
--
- static void execute_transaction(
- struct dce_i2c_hw *dce_i2c_hw)
- {
-@@ -348,60 +342,40 @@ static void release_engine(
- REG_UPDATE(DC_I2C_CONTROL, DC_I2C_SW_STATUS_RESET, 1);
- /* HW I2c engine - clock gating feature */
- if (!dce_i2c_hw->engine_keep_power_up_count)
-- disable_i2c_hw_engine(dce_i2c_hw);
-+ REG_UPDATE_N(SETUP, 1, FN(SETUP, DC_I2C_DDC1_ENABLE), 0);
-
- }
-
--static void release_engine_dce_hw(
-+struct dce_i2c_hw *acquire_i2c_hw_engine(
- struct resource_pool *pool,
-- struct dce_i2c_hw *dce_i2c_hw)
--{
-- pool->i2c_hw_buffer_in_use = false;
--
-- release_engine(dce_i2c_hw);
-- dal_ddc_close(dce_i2c_hw->ddc);
--
-- dce_i2c_hw->ddc = NULL;
--}
--
--bool dce_i2c_hw_engine_acquire_engine(
-- struct dce_i2c_hw *dce_i2c_hw,
- struct ddc *ddc)
- {
--
-+ uint32_t counter = 0;
- enum gpio_result result;
- uint32_t current_speed;
-+ struct dce_i2c_hw *dce_i2c_hw = NULL;
-
-- result = dal_ddc_open(ddc, GPIO_MODE_HARDWARE,
-- GPIO_DDC_CONFIG_TYPE_MODE_I2C);
--
-- if (result != GPIO_RESULT_OK)
-- return false;
--
-- dce_i2c_hw->ddc = ddc;
--
--
-- current_speed = get_speed(dce_i2c_hw);
-+ if (!ddc)
-+ return NULL;
-
-- if (current_speed)
-- dce_i2c_hw->original_speed = current_speed;
-+ if (ddc->hw_info.hw_supported) {
-+ enum gpio_ddc_line line = dal_ddc_get_line(ddc);
-
-- return true;
--}
-+ if (line < pool->pipe_count)
-+ dce_i2c_hw = pool->hw_i2cs[line];
-+ }
-
--bool dce_i2c_engine_acquire_hw(
-- struct dce_i2c_hw *dce_i2c_hw,
-- struct ddc *ddc_handle)
--{
-+ if (!dce_i2c_hw)
-+ return NULL;
-
-- uint32_t counter = 0;
-- bool result;
-+ if (pool->i2c_hw_buffer_in_use)
-+ return NULL;
-
- do {
-- result = dce_i2c_hw_engine_acquire_engine(
-- dce_i2c_hw, ddc_handle);
-+ result = dal_ddc_open(ddc, GPIO_MODE_HARDWARE,
-+ GPIO_DDC_CONFIG_TYPE_MODE_I2C);
-
-- if (result)
-+ if (result == GPIO_RESULT_OK)
- break;
-
- /* i2c_engine is busy by VBios, lets wait and retry */
-@@ -411,45 +385,23 @@ bool dce_i2c_engine_acquire_hw(
- ++counter;
- } while (counter < 2);
-
-- if (result) {
-- if (!setup_engine(dce_i2c_hw)) {
-- release_engine(dce_i2c_hw);
-- result = false;
-- }
-- }
--
-- return result;
--}
--
--struct dce_i2c_hw *acquire_i2c_hw_engine(
-- struct resource_pool *pool,
-- struct ddc *ddc)
--{
--
-- struct dce_i2c_hw *engine = NULL;
--
-- if (!ddc)
-+ if (result != GPIO_RESULT_OK)
- return NULL;
-
-- if (ddc->hw_info.hw_supported) {
-- enum gpio_ddc_line line = dal_ddc_get_line(ddc);
--
-- if (line < pool->pipe_count)
-- engine = pool->hw_i2cs[line];
-- }
-+ dce_i2c_hw->ddc = ddc;
-
-- if (!engine)
-- return NULL;
-+ current_speed = get_speed(dce_i2c_hw);
-
-+ if (current_speed)
-+ dce_i2c_hw->original_speed = current_speed;
-
-- if (!pool->i2c_hw_buffer_in_use &&
-- dce_i2c_engine_acquire_hw(engine, ddc)) {
-- pool->i2c_hw_buffer_in_use = true;
-- return engine;
-+ if (!setup_engine(dce_i2c_hw)) {
-+ release_engine(dce_i2c_hw);
-+ return NULL;
- }
-
--
-- return NULL;
-+ pool->i2c_hw_buffer_in_use = true;
-+ return dce_i2c_hw;
- }
-
- enum i2c_channel_operation_result dce_i2c_hw_engine_wait_on_operation_result(
-@@ -619,7 +571,12 @@ bool dce_i2c_submit_command_hw(
- ++index_of_payload;
- }
-
-- release_engine_dce_hw(pool, dce_i2c_hw);
-+ pool->i2c_hw_buffer_in_use = false;
-+
-+ release_engine(dce_i2c_hw);
-+ dal_ddc_close(dce_i2c_hw->ddc);
-+
-+ dce_i2c_hw->ddc = NULL;
-
- return result;
- }
---
-2.7.4
-