aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1021-drm-amd-display-add-aux-arbitration-logic.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1021-drm-amd-display-add-aux-arbitration-logic.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1021-drm-amd-display-add-aux-arbitration-logic.patch110
1 files changed, 0 insertions, 110 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1021-drm-amd-display-add-aux-arbitration-logic.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1021-drm-amd-display-add-aux-arbitration-logic.patch
deleted file mode 100644
index d2c5e0a2..00000000
--- a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.14.71/1021-drm-amd-display-add-aux-arbitration-logic.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From c8e0ca2f9c11bf72eb8bffbc7250c1fa3952350c Mon Sep 17 00:00:00 2001
-From: Charlene Liu <charlene.liu@amd.com>
-Date: Thu, 24 Aug 2017 17:12:48 -0400
-Subject: [PATCH 1021/4131] drm/amd/display: add aux arbitration logic
-
-Change-Id: I10e9c69f5557a7ee030b423703a7aa677fd3f4d9
-Signed-off-by: Charlene Liu <charlene.liu@amd.com>
-Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
-Acked-by: Harry Wentland <Harry.Wentland@amd.com>
----
- drivers/gpu/drm/amd/display/dc/i2caux/aux_engine.c | 6 +++++
- drivers/gpu/drm/amd/display/dc/i2caux/aux_engine.h | 2 ++
- .../display/dc/i2caux/dce110/aux_engine_dce110.c | 30 ++++++++++++++++++++--
- 3 files changed, 36 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/amd/display/dc/i2caux/aux_engine.c b/drivers/gpu/drm/amd/display/dc/i2caux/aux_engine.c
-index 667660f..3c9608c 100644
---- a/drivers/gpu/drm/amd/display/dc/i2caux/aux_engine.c
-+++ b/drivers/gpu/drm/amd/display/dc/i2caux/aux_engine.c
-@@ -69,6 +69,12 @@ bool dal_aux_engine_acquire(
- struct aux_engine *aux_engine = FROM_ENGINE(engine);
-
- enum gpio_result result;
-+ if (aux_engine->funcs->is_engine_available) {
-+ /*check whether SW could use the engine*/
-+ if (!aux_engine->funcs->is_engine_available(aux_engine)) {
-+ return false;
-+ }
-+ }
-
- result = dal_ddc_open(ddc, GPIO_MODE_HARDWARE,
- GPIO_DDC_CONFIG_TYPE_MODE_AUX);
-diff --git a/drivers/gpu/drm/amd/display/dc/i2caux/aux_engine.h b/drivers/gpu/drm/amd/display/dc/i2caux/aux_engine.h
-index b5d6c79..40b2028 100644
---- a/drivers/gpu/drm/amd/display/dc/i2caux/aux_engine.h
-+++ b/drivers/gpu/drm/amd/display/dc/i2caux/aux_engine.h
-@@ -86,6 +86,8 @@ struct aux_engine_funcs {
- enum aux_channel_operation_result (*get_channel_status)(
- struct aux_engine *engine,
- uint8_t *returned_bytes);
-+ bool (*is_engine_available) (
-+ struct aux_engine *engine);
- };
-
- struct aux_engine {
-diff --git a/drivers/gpu/drm/amd/display/dc/i2caux/dce110/aux_engine_dce110.c b/drivers/gpu/drm/amd/display/dc/i2caux/dce110/aux_engine_dce110.c
-index f49fd1a..98ce0fe 100644
---- a/drivers/gpu/drm/amd/display/dc/i2caux/dce110/aux_engine_dce110.c
-+++ b/drivers/gpu/drm/amd/display/dc/i2caux/dce110/aux_engine_dce110.c
-@@ -93,15 +93,36 @@ static void destroy(
- }
-
- #define SW_CAN_ACCESS_AUX 1
-+#define DMCU_CAN_ACCESS_AUX 2
-
-+static bool is_engine_available(
-+ struct aux_engine *engine)
-+{
-+ struct aux_engine_dce110 *aux110 = FROM_AUX_ENGINE(engine);
-+
-+ uint32_t value = REG_READ(AUX_ARB_CONTROL);
-+ uint32_t field = get_reg_field_value(
-+ value,
-+ AUX_ARB_CONTROL,
-+ AUX_REG_RW_CNTL_STATUS);
-+
-+ return (field != DMCU_CAN_ACCESS_AUX);
-+}
- static bool acquire_engine(
- struct aux_engine *engine)
- {
- struct aux_engine_dce110 *aux110 = FROM_AUX_ENGINE(engine);
-
-+ uint32_t value = REG_READ(AUX_ARB_CONTROL);
-+ uint32_t field = get_reg_field_value(
-+ value,
-+ AUX_ARB_CONTROL,
-+ AUX_REG_RW_CNTL_STATUS);
-+ if (field == DMCU_CAN_ACCESS_AUX)
-+ return false;
- /* enable AUX before request SW to access AUX */
-- uint32_t value = REG_READ(AUX_CONTROL);
-- uint32_t field = get_reg_field_value(value,
-+ value = REG_READ(AUX_CONTROL);
-+ field = get_reg_field_value(value,
- AUX_CONTROL,
- AUX_EN);
-
-@@ -395,6 +416,7 @@ static const struct aux_engine_funcs aux_engine_funcs = {
- .submit_channel_request = submit_channel_request,
- .process_channel_reply = process_channel_reply,
- .get_channel_status = get_channel_status,
-+ .is_engine_available = is_engine_available,
- };
-
- static const struct engine_funcs engine_funcs = {
-@@ -425,6 +447,10 @@ static bool construct(
- static void destruct(
- struct aux_engine_dce110 *engine)
- {
-+ struct aux_engine_dce110 *aux110 = engine;
-+/*temp w/a, to do*/
-+ REG_UPDATE(AUX_ARB_CONTROL, AUX_DMCU_DONE_USING_AUX_REG, 1);
-+ REG_UPDATE(AUX_ARB_CONTROL, AUX_SW_DONE_USING_AUX_REG, 1);
- dal_aux_engine_destruct(&engine->base);
- }
-
---
-2.7.4
-