aboutsummaryrefslogtreecommitdiffstats
path: root/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4899-drm-amd-display-generic-indirect-register-access.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4899-drm-amd-display-generic-indirect-register-access.patch')
-rw-r--r--meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4899-drm-amd-display-generic-indirect-register-access.patch136
1 files changed, 0 insertions, 136 deletions
diff --git a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4899-drm-amd-display-generic-indirect-register-access.patch b/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4899-drm-amd-display-generic-indirect-register-access.patch
deleted file mode 100644
index 187a1d7b..00000000
--- a/meta-r1000/recipes-kernel/linux/linux-yocto-4.14.71/4899-drm-amd-display-generic-indirect-register-access.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-From b5cce50c1cbbb46ec3b9fb1d87cfefd974f3ed69 Mon Sep 17 00:00:00 2001
-From: Tony Cheng <tony.cheng@amd.com>
-Date: Sat, 16 Jun 2018 19:43:41 -0400
-Subject: [PATCH 4899/5725] drm/amd/display: generic indirect register access
-
-add generic indirect register access following our register access pattern
-
-this will make it easier to review code and programming sequence,
-with all the complexity hidden in macro
-
-Signed-off-by: Tony Cheng <tony.cheng@amd.com>
-Reviewed-by: Yongqiang Sun <yongqiang.sun@amd.com>
-Acked-by: Harry Wentland <harry.wentland@amd.com>
-Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
----
- drivers/gpu/drm/amd/display/dc/dc_helper.c | 51 +++++++++++++++++++++++++
- drivers/gpu/drm/amd/display/dc/inc/reg_helper.h | 46 ++++++++++++++++++++++
- 2 files changed, 97 insertions(+)
-
-diff --git a/drivers/gpu/drm/amd/display/dc/dc_helper.c b/drivers/gpu/drm/amd/display/dc/dc_helper.c
-index bd0fda0..e68077e 100644
---- a/drivers/gpu/drm/amd/display/dc/dc_helper.c
-+++ b/drivers/gpu/drm/amd/display/dc/dc_helper.c
-@@ -255,3 +255,54 @@ uint32_t generic_reg_wait(const struct dc_context *ctx,
-
- return reg_val;
- }
-+
-+void generic_write_indirect_reg(const struct dc_context *ctx,
-+ uint32_t addr_index, uint32_t addr_data,
-+ uint32_t index, uint32_t data)
-+{
-+ dm_write_reg(ctx, addr_index, index);
-+ dm_write_reg(ctx, addr_data, data);
-+}
-+
-+uint32_t generic_read_indirect_reg(const struct dc_context *ctx,
-+ uint32_t addr_index, uint32_t addr_data,
-+ uint32_t index)
-+{
-+ uint32_t value = 0;
-+
-+ dm_write_reg(ctx, addr_index, index);
-+ value = dm_read_reg(ctx, addr_data);
-+
-+ return value;
-+}
-+
-+
-+uint32_t generic_indirect_reg_update_ex(const struct dc_context *ctx,
-+ uint32_t addr_index, uint32_t addr_data,
-+ uint32_t index, uint32_t reg_val, int n,
-+ uint8_t shift1, uint32_t mask1, uint32_t field_value1,
-+ ...)
-+{
-+ uint32_t shift, mask, field_value;
-+ int i = 1;
-+
-+ va_list ap;
-+
-+ va_start(ap, field_value1);
-+
-+ reg_val = set_reg_field_value_ex(reg_val, field_value1, mask1, shift1);
-+
-+ while (i < n) {
-+ shift = va_arg(ap, uint32_t);
-+ mask = va_arg(ap, uint32_t);
-+ field_value = va_arg(ap, uint32_t);
-+
-+ reg_val = set_reg_field_value_ex(reg_val, field_value, mask, shift);
-+ i++;
-+ }
-+
-+ generic_write_indirect_reg(ctx, addr_index, addr_data, index, reg_val);
-+ va_end(ap);
-+
-+ return reg_val;
-+}
-diff --git a/drivers/gpu/drm/amd/display/dc/inc/reg_helper.h b/drivers/gpu/drm/amd/display/dc/inc/reg_helper.h
-index 3306e7b..cf5a84b 100644
---- a/drivers/gpu/drm/amd/display/dc/inc/reg_helper.h
-+++ b/drivers/gpu/drm/amd/display/dc/inc/reg_helper.h
-@@ -445,4 +445,50 @@ uint32_t generic_reg_get8(const struct dc_context *ctx, uint32_t addr,
- uint8_t shift6, uint32_t mask6, uint32_t *field_value6,
- uint8_t shift7, uint32_t mask7, uint32_t *field_value7,
- uint8_t shift8, uint32_t mask8, uint32_t *field_value8);
-+
-+
-+/* indirect register access */
-+
-+#define IX_REG_SET_N(index_reg_name, data_reg_name, index, n, initial_val, ...) \
-+ generic_indirect_reg_update_ex(CTX, \
-+ REG(index_reg_name), REG(data_reg_name), IND_REG(index), \
-+ initial_val, \
-+ n, __VA_ARGS__)
-+
-+#define IX_REG_SET_2(index_reg_name, data_reg_name, index, init_value, f1, v1, f2, v2) \
-+ IX_REG_SET_N(index_reg_name, data_reg_name, index, 2, init_value, \
-+ FN(reg, f1), v1,\
-+ FN(reg, f2), v2)
-+
-+
-+#define IX_REG_READ(index_reg_name, data_reg_name, index) \
-+ generic_read_indirect_reg(CTX, REG(index_reg_name), REG(data_reg_name), IND_REG(index))
-+
-+
-+
-+#define IX_REG_UPDATE_N(index_reg_name, data_reg_name, index, n, ...) \
-+ generic_indirect_reg_update_ex(CTX, \
-+ REG(index_reg_name), REG(data_reg_name), IND_REG(index), \
-+ IX_REG_READ(index_reg_name, data_reg_name, index), \
-+ n, __VA_ARGS__)
-+
-+#define IX_REG_UPDATE_2(index_reg_name, data_reg_name, index, f1, v1, f2, v2) \
-+ IX_REG_UPDATE_N(index_reg_name, data_reg_name, index, 2,\
-+ FN(reg, f1), v1,\
-+ FN(reg, f2), v2)
-+
-+void generic_write_indirect_reg(const struct dc_context *ctx,
-+ uint32_t addr_index, uint32_t addr_data,
-+ uint32_t index, uint32_t data);
-+
-+uint32_t generic_read_indirect_reg(const struct dc_context *ctx,
-+ uint32_t addr_index, uint32_t addr_data,
-+ uint32_t index);
-+
-+uint32_t generic_indirect_reg_update_ex(const struct dc_context *ctx,
-+ uint32_t addr_index, uint32_t addr_data,
-+ uint32_t index, uint32_t reg_val, int n,
-+ uint8_t shift1, uint32_t mask1, uint32_t field_value1,
-+ ...);
-+
- #endif /* DRIVERS_GPU_DRM_AMD_DC_DEV_DC_INC_REG_HELPER_H_ */
---
-2.7.4
-