aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3680-drm-amd-display-Add-stereo-mux-and-dig-programming-c.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3680-drm-amd-display-Add-stereo-mux-and-dig-programming-c.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3680-drm-amd-display-Add-stereo-mux-and-dig-programming-c.patch111
1 files changed, 111 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3680-drm-amd-display-Add-stereo-mux-and-dig-programming-c.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3680-drm-amd-display-Add-stereo-mux-and-dig-programming-c.patch
new file mode 100644
index 00000000..ce33d7fa
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/3680-drm-amd-display-Add-stereo-mux-and-dig-programming-c.patch
@@ -0,0 +1,111 @@
+From 496389f4be1e1851ca46cc2825d13b6b7f8f386b Mon Sep 17 00:00:00 2001
+From: Roman Li <Roman.Li@amd.com>
+Date: Wed, 4 Sep 2019 17:23:11 -0400
+Subject: [PATCH 3680/4256] drm/amd/display: Add stereo mux and dig programming
+ calls for dcn21
+
+[Why]
+The earlier patch "Hook up calls to do stereo mux and dig programming..."
+doesn't include update for dcn21.
+
+[How]
+Align dcn21 gpio settings with updated stereo control interface.
+
+Signed-off-by: Roman Li <Roman.Li@amd.com>
+Acked-by: Aaron Liu <aaron.liu@amd.com>
+---
+ .../display/dc/gpio/dcn21/hw_factory_dcn21.c | 38 +++++++++++++++++--
+ .../dc/gpio/dcn21/hw_translate_dcn21.c | 3 +-
+ 2 files changed, 36 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/gpio/dcn21/hw_factory_dcn21.c b/drivers/gpu/drm/amd/display/dc/gpio/dcn21/hw_factory_dcn21.c
+index 34485d9de78a..8572678f8d4f 100644
+--- a/drivers/gpu/drm/amd/display/dc/gpio/dcn21/hw_factory_dcn21.c
++++ b/drivers/gpu/drm/amd/display/dc/gpio/dcn21/hw_factory_dcn21.c
+@@ -35,12 +35,10 @@
+
+ #include "hw_factory_dcn21.h"
+
+-
+ #include "dcn/dcn_2_1_0_offset.h"
+ #include "dcn/dcn_2_1_0_sh_mask.h"
+ #include "renoir_ip_offset.h"
+
+-
+ #include "reg_helper.h"
+ #include "../hpd_regs.h"
+ /* begin *********************
+@@ -136,6 +134,39 @@ static const struct ddc_sh_mask ddc_mask[] = {
+ DDC_MASK_SH_LIST_DCN2(_MASK, 6)
+ };
+
++#include "../generic_regs.h"
++
++/* set field name */
++#define SF_GENERIC(reg_name, field_name, post_fix)\
++ .field_name = reg_name ## __ ## field_name ## post_fix
++
++#define generic_regs(id) \
++{\
++ GENERIC_REG_LIST(id)\
++}
++
++static const struct generic_registers generic_regs[] = {
++ generic_regs(A),
++};
++
++static const struct generic_sh_mask generic_shift[] = {
++ GENERIC_MASK_SH_LIST(__SHIFT, A),
++};
++
++static const struct generic_sh_mask generic_mask[] = {
++ GENERIC_MASK_SH_LIST(_MASK, A),
++};
++
++static void define_generic_registers(struct hw_gpio_pin *pin, uint32_t en)
++{
++ struct hw_generic *generic = HW_GENERIC_FROM_BASE(pin);
++
++ generic->regs = &generic_regs[en];
++ generic->shifts = &generic_shift[en];
++ generic->masks = &generic_mask[en];
++ generic->base.regs = &generic_regs[en].gpio;
++}
++
+ static void define_ddc_registers(
+ struct hw_gpio_pin *pin,
+ uint32_t en)
+@@ -181,7 +212,8 @@ static const struct hw_factory_funcs funcs = {
+ .get_hpd_pin = dal_hw_hpd_get_pin,
+ .get_generic_pin = dal_hw_generic_get_pin,
+ .define_hpd_registers = define_hpd_registers,
+- .define_ddc_registers = define_ddc_registers
++ .define_ddc_registers = define_ddc_registers,
++ .define_generic_registers = define_generic_registers
+ };
+ /*
+ * dal_hw_factory_dcn10_init
+diff --git a/drivers/gpu/drm/amd/display/dc/gpio/dcn21/hw_translate_dcn21.c b/drivers/gpu/drm/amd/display/dc/gpio/dcn21/hw_translate_dcn21.c
+index ad7c43746291..fbb58fb8c318 100644
+--- a/drivers/gpu/drm/amd/display/dc/gpio/dcn21/hw_translate_dcn21.c
++++ b/drivers/gpu/drm/amd/display/dc/gpio/dcn21/hw_translate_dcn21.c
+@@ -58,7 +58,6 @@
+ #define SF_HPD(reg_name, field_name, post_fix)\
+ .field_name = reg_name ## __ ## field_name ## post_fix
+
+-
+ /* macros to expend register list macro defined in HW object header file
+ * end *********************/
+
+@@ -71,7 +70,7 @@ static bool offset_to_id(
+ {
+ switch (offset) {
+ /* GENERIC */
+- case REG(DC_GENERICA):
++ case REG(DC_GPIO_GENERIC_A):
+ *id = GPIO_ID_GENERIC;
+ switch (mask) {
+ case DC_GPIO_GENERIC_A__DC_GPIO_GENERICA_A_MASK:
+--
+2.17.1
+