aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/linux-yocto-4.19.8/1133-drm-amd-display-fix-eDP-fast-bootup-for-pre-raven-as.patch
diff options
context:
space:
mode:
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.19.8/1133-drm-amd-display-fix-eDP-fast-bootup-for-pre-raven-as.patch')
-rw-r--r--common/recipes-kernel/linux/linux-yocto-4.19.8/1133-drm-amd-display-fix-eDP-fast-bootup-for-pre-raven-as.patch143
1 files changed, 143 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.19.8/1133-drm-amd-display-fix-eDP-fast-bootup-for-pre-raven-as.patch b/common/recipes-kernel/linux/linux-yocto-4.19.8/1133-drm-amd-display-fix-eDP-fast-bootup-for-pre-raven-as.patch
new file mode 100644
index 00000000..0c8aa1e1
--- /dev/null
+++ b/common/recipes-kernel/linux/linux-yocto-4.19.8/1133-drm-amd-display-fix-eDP-fast-bootup-for-pre-raven-as.patch
@@ -0,0 +1,143 @@
+From a49d1acbbe63af9b5f4f331eecbee454efffd8af Mon Sep 17 00:00:00 2001
+From: hersen wu <hersenxs.wu@amd.com>
+Date: Fri, 11 Jan 2019 10:39:30 -0500
+Subject: [PATCH 1133/2940] drm/amd/display: fix eDP fast bootup for pre-raven
+ asic
+
+[Why]
+For fastboot, Bios will light up eDP before SW driver is loaded. SW
+driver will check if eDP is lit by bios through reading the
+BIOS_SCRATCH_3 register. If lit, SW driver will not power down eDP
+power and phy to save time.
+
+Definition of BIOS_SCRATCH_3 are missing for pre-raven asic. This
+causes eDP fast boot to not work property. For some eDP panels, even
+if dp tx sends NoVideoStream_flag =1 and dpcd 0x600=2, eDP rx may not
+handle properly. This may cause a short flash on screen.
+
+[How] Add definition of BIOS_SCRATCH_3 for all asic
+
+Signed-off-by: hersen wu <hersenxs.wu@amd.com>
+Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+Reviewed-by: Charlene Liu <Charlene.Liu@amd.com>
+Acked-by: Leo Li <sunpeng.li@amd.com>
+Acked-by: Yongqiang Sun <yongqiang.sun@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/amd/display/dc/bios/bios_parser_helper.c | 3 +--
+ drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c | 2 ++
+ drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c | 2 ++
+ drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c | 2 ++
+ drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c | 1 +
+ drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c | 2 ++
+ 6 files changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/bios/bios_parser_helper.c b/drivers/gpu/drm/amd/display/dc/bios/bios_parser_helper.c
+index fdda8aa8e303..d8275ceb20c1 100644
+--- a/drivers/gpu/drm/amd/display/dc/bios/bios_parser_helper.c
++++ b/drivers/gpu/drm/amd/display/dc/bios/bios_parser_helper.c
+@@ -83,8 +83,7 @@ uint32_t bios_get_vga_enabled_displays(
+ {
+ uint32_t active_disp = 1;
+
+- if (bios->regs->BIOS_SCRATCH_3) /*follow up with other asic, todo*/
+- active_disp = REG_READ(BIOS_SCRATCH_3) & 0XFFFF;
++ active_disp = REG_READ(BIOS_SCRATCH_3) & 0XFFFF;
+ return active_disp;
+ }
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c b/drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c
+index c3f616a739d7..23044e6723e8 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c
+@@ -76,6 +76,7 @@
+
+ #ifndef mmBIOS_SCRATCH_2
+ #define mmBIOS_SCRATCH_2 0x05CB
++ #define mmBIOS_SCRATCH_3 0x05CC
+ #define mmBIOS_SCRATCH_6 0x05CF
+ #endif
+
+@@ -365,6 +366,7 @@ static const struct dce_abm_mask abm_mask = {
+ #define DCFE_MEM_PWR_CTRL_REG_BASE 0x1b03
+
+ static const struct bios_registers bios_regs = {
++ .BIOS_SCRATCH_3 = mmBIOS_SCRATCH_3,
+ .BIOS_SCRATCH_6 = mmBIOS_SCRATCH_6
+ };
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c
+index 7d46eb7a2ace..7549adaa1542 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c
+@@ -84,6 +84,7 @@
+
+ #ifndef mmBIOS_SCRATCH_2
+ #define mmBIOS_SCRATCH_2 0x05CB
++ #define mmBIOS_SCRATCH_3 0x05CC
+ #define mmBIOS_SCRATCH_6 0x05CF
+ #endif
+
+@@ -369,6 +370,7 @@ static const struct dce110_clk_src_mask cs_mask = {
+ };
+
+ static const struct bios_registers bios_regs = {
++ .BIOS_SCRATCH_3 = mmBIOS_SCRATCH_3,
+ .BIOS_SCRATCH_6 = mmBIOS_SCRATCH_6
+ };
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c b/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c
+index d930e09ccfb4..ea3065d63372 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c
+@@ -76,6 +76,7 @@
+
+ #ifndef mmBIOS_SCRATCH_2
+ #define mmBIOS_SCRATCH_2 0x05CB
++ #define mmBIOS_SCRATCH_3 0x05CC
+ #define mmBIOS_SCRATCH_6 0x05CF
+ #endif
+
+@@ -376,6 +377,7 @@ static const struct dce110_clk_src_mask cs_mask = {
+ };
+
+ static const struct bios_registers bios_regs = {
++ .BIOS_SCRATCH_3 = mmBIOS_SCRATCH_3,
+ .BIOS_SCRATCH_6 = mmBIOS_SCRATCH_6
+ };
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c b/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c
+index 23d7d4d85207..312a0aebf91f 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c
+@@ -442,6 +442,7 @@ struct dce_i2c_hw *dce120_i2c_hw_create(
+ return dce_i2c_hw;
+ }
+ static const struct bios_registers bios_regs = {
++ .BIOS_SCRATCH_3 = mmBIOS_SCRATCH_3 + NBIO_BASE(mmBIOS_SCRATCH_3_BASE_IDX),
+ .BIOS_SCRATCH_6 = mmBIOS_SCRATCH_6 + NBIO_BASE(mmBIOS_SCRATCH_6_BASE_IDX)
+ };
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c b/drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c
+index e0bba0bc996b..2eca81b5cf2f 100644
+--- a/drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c
+@@ -77,6 +77,7 @@
+
+ #ifndef mmBIOS_SCRATCH_2
+ #define mmBIOS_SCRATCH_2 0x05CB
++ #define mmBIOS_SCRATCH_3 0x05CC
+ #define mmBIOS_SCRATCH_6 0x05CF
+ #endif
+
+@@ -358,6 +359,7 @@ static const struct dce110_clk_src_mask cs_mask = {
+ };
+
+ static const struct bios_registers bios_regs = {
++ .BIOS_SCRATCH_3 = mmBIOS_SCRATCH_3,
+ .BIOS_SCRATCH_6 = mmBIOS_SCRATCH_6
+ };
+
+--
+2.17.1
+