<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:DengXian;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@DengXian";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hi, Alex,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hersen’s change is for older version of eDP fast boot up ( bios_get_vga_enabled_displays  is called).
<o:p></o:p></p>
<p class="MsoNormal">Chrome tree source still use bios_get_vga_enabled_displays for fast boot up.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Harry’s change is new implementation of eDP fast boot up.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hersen’s change will not revert Harry’s change.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
<p class="MsoNormal">Hersen<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> Deucher, Alexander <Alexander.Deucher@amd.com> <br>
<b>Sent:</b> Tuesday, January 15, 2019 10:43 AM<br>
<b>To:</b> Li, Sun peng (Leo) <Sunpeng.Li@amd.com>; amd-gfx@lists.freedesktop.org<br>
<b>Cc:</b> Wentland, Harry <Harry.Wentland@amd.com>; Wu, Hersen <hersenxs.wu@amd.com><br>
<b>Subject:</b> Re: [PATCH] drm/amd/display: eDP fast bootup does not work for pre-raven asic<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div id="divtagdefaultwrapper">
<p><span style="font-size:12.0pt;color:black">Can this patch be reverted with this change?<o:p></o:p></span></p>
<p><span style="font-size:12.0pt;color:black"><o:p> </o:p></span></p>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size:12.0pt;color:black">commit 95f05a3a2e6895ecfd8b4f64b5d6c6cf0b6a3f4a<br>
Author: Alex Deucher <<a href="mailto:alexander.deucher@amd.com">alexander.deucher@amd.com</a>><br>
Date:   Thu Aug 16 15:35:21 2018 -0500<br>
<br>
    drm/amdgpu/display: disable eDP fast boot optimization on DCE8<br>
    <br>
    Seems to cause blank screens.<br>
    <br>
    Bug: <a href="https://bugs.freedesktop.org/show_bug.cgi?id=106940">https://bugs.freedesktop.org/show_bug.cgi?id=106940</a><br>
    Reviewed-by: Harry Wentland <<a href="mailto:harry.wentland@amd.com">harry.wentland@amd.com</a>><br>
    Signed-off-by: Alex Deucher <<a href="mailto:alexander.deucher@amd.com">alexander.deucher@amd.com</a>><o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span style="font-size:12.0pt;color:black">Other than that, it looks good to me.
<o:p></o:p></span></p>
<p><span style="font-size:12.0pt;color:black">Reviewed-by: Alex Deucher <<a href="mailto:alexander.deucher@amd.com">alexander.deucher@amd.com</a>><o:p></o:p></span></p>
</div>
<div class="MsoNormal" align="center" style="text-align:center">
<hr size="2" width="98%" align="center">
</div>
<div id="divRplyFwdMsg">
<p class="MsoNormal"><b><span style="color:black">From:</span></b><span style="color:black"> amd-gfx <<a href="mailto:amd-gfx-bounces@lists.freedesktop.org">amd-gfx-bounces@lists.freedesktop.org</a>> on behalf of
<a href="mailto:sunpeng.li@amd.com">sunpeng.li@amd.com</a> <<a href="mailto:sunpeng.li@amd.com">sunpeng.li@amd.com</a>><br>
<b>Sent:</b> Monday, January 14, 2019 5:36:15 PM<br>
<b>To:</b> <a href="mailto:amd-gfx@lists.freedesktop.org">amd-gfx@lists.freedesktop.org</a><br>
<b>Cc:</b> Wentland, Harry; Wu, Hersen<br>
<b>Subject:</b> [PATCH] drm/amd/display: eDP fast bootup does not work for pre-raven asic</span>
<o:p></o:p></p>
<div>
<p class="MsoNormal"> <o:p></o:p></p>
</div>
</div>
<div>
<div>
<p class="MsoNormal">From: hersen wu <<a href="mailto:hersenxs.wu@amd.com">hersenxs.wu@amd.com</a>><br>
<br>
[Why] bios will light up eDP before sw driver loaded. sw driver will<br>
check if eDP lighted up by bios by reading BIOS_SCRATCH_3. If yes,<br>
sw driver will not power down eDP power, phy to save time.<br>
definition of BIOS_SCRATCH_3 are missed for pre-raven asic. this<br>
cuase eDP fast boot up not work. for some eDP panel, even AMD dp tx<br>
send NoVideoStream_flag =1 and dpcd 0x600=2, eDP rx may not handle<br>
properly. this may cause short period flash on screen.<br>
<br>
[How] add definition of BIOS_SCRATCH_3 for all asic<br>
<br>
CC: Harry Wentland <<a href="mailto:harry.wentland@amd.com">harry.wentland@amd.com</a>><br>
Signed-off-by: hersen wu <<a href="mailto:hersenxs.wu@amd.com">hersenxs.wu@amd.com</a>><br>
Reviewed-by: Charlene Liu <<a href="mailto:Charlene.Liu@amd.com">Charlene.Liu@amd.com</a>><br>
Acked-by: Yongqiang Sun <<a href="mailto:yongqiang.sun@amd.com">yongqiang.sun@amd.com</a>><br>
Acked-by: Leo Li <<a href="mailto:sunpeng.li@amd.com">sunpeng.li@amd.com</a>><br>
---<br>
 drivers/gpu/drm/amd/display/dc/bios/bios_parser_helper.c | 3 +--<br>
 drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c  | 2 ++<br>
 drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c  | 2 ++<br>
 drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c  | 2 ++<br>
 drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c  | 1 +<br>
 drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c    | 2 ++<br>
 6 files changed, 10 insertions(+), 2 deletions(-)<br>
<br>
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<br>
index fdda8aa..d8275ceb 100644<br>
--- a/drivers/gpu/drm/amd/display/dc/bios/bios_parser_helper.c<br>
+++ b/drivers/gpu/drm/amd/display/dc/bios/bios_parser_helper.c<br>
@@ -83,8 +83,7 @@ uint32_t bios_get_vga_enabled_displays(<br>
 {<br>
         uint32_t active_disp = 1;<br>
 <br>
-       if (bios->regs->BIOS_SCRATCH_3) /*follow up with other asic, todo*/<br>
-               active_disp = REG_READ(BIOS_SCRATCH_3) & 0XFFFF;<br>
+       active_disp = REG_READ(BIOS_SCRATCH_3) & 0XFFFF;<br>
         return active_disp;<br>
 }<br>
 <br>
diff --git a/drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c b/drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c<br>
index c3f616a..23044e6 100644<br>
--- a/drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c<br>
+++ b/drivers/gpu/drm/amd/display/dc/dce100/dce100_resource.c<br>
@@ -76,6 +76,7 @@<br>
 <br>
 #ifndef mmBIOS_SCRATCH_2<br>
         #define mmBIOS_SCRATCH_2 0x05CB<br>
+       #define mmBIOS_SCRATCH_3 0x05CC<br>
         #define mmBIOS_SCRATCH_6 0x05CF<br>
 #endif<br>
 <br>
@@ -365,6 +366,7 @@ static const struct dce_abm_mask abm_mask = {<br>
 #define DCFE_MEM_PWR_CTRL_REG_BASE 0x1b03<br>
 <br>
 static const struct bios_registers bios_regs = {<br>
+       .BIOS_SCRATCH_3 = mmBIOS_SCRATCH_3,<br>
         .BIOS_SCRATCH_6 = mmBIOS_SCRATCH_6<br>
 };<br>
 <br>
diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c<br>
index 7d46eb7..7549ada 100644<br>
--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c<br>
+++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_resource.c<br>
@@ -84,6 +84,7 @@<br>
 <br>
 #ifndef mmBIOS_SCRATCH_2<br>
         #define mmBIOS_SCRATCH_2 0x05CB<br>
+       #define mmBIOS_SCRATCH_3 0x05CC<br>
         #define mmBIOS_SCRATCH_6 0x05CF<br>
 #endif<br>
 <br>
@@ -369,6 +370,7 @@ static const struct dce110_clk_src_mask cs_mask = {<br>
 };<br>
 <br>
 static const struct bios_registers bios_regs = {<br>
+       .BIOS_SCRATCH_3 = mmBIOS_SCRATCH_3,<br>
         .BIOS_SCRATCH_6 = mmBIOS_SCRATCH_6<br>
 };<br>
 <br>
diff --git a/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c b/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c<br>
index d930e09..ea3065d6 100644<br>
--- a/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c<br>
+++ b/drivers/gpu/drm/amd/display/dc/dce112/dce112_resource.c<br>
@@ -76,6 +76,7 @@<br>
 <br>
 #ifndef mmBIOS_SCRATCH_2<br>
         #define mmBIOS_SCRATCH_2 0x05CB<br>
+       #define mmBIOS_SCRATCH_3 0x05CC<br>
         #define mmBIOS_SCRATCH_6 0x05CF<br>
 #endif<br>
 <br>
@@ -376,6 +377,7 @@ static const struct dce110_clk_src_mask cs_mask = {<br>
 };<br>
 <br>
 static const struct bios_registers bios_regs = {<br>
+       .BIOS_SCRATCH_3 = mmBIOS_SCRATCH_3,<br>
         .BIOS_SCRATCH_6 = mmBIOS_SCRATCH_6<br>
 };<br>
 <br>
diff --git a/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c b/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c<br>
index 23d7d4d..312a0ae 100644<br>
--- a/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c<br>
+++ b/drivers/gpu/drm/amd/display/dc/dce120/dce120_resource.c<br>
@@ -442,6 +442,7 @@ struct dce_i2c_hw *dce120_i2c_hw_create(<br>
         return dce_i2c_hw;<br>
 }<br>
 static const struct bios_registers bios_regs = {<br>
+       .BIOS_SCRATCH_3 = mmBIOS_SCRATCH_3 + NBIO_BASE(mmBIOS_SCRATCH_3_BASE_IDX),<br>
         .BIOS_SCRATCH_6 = mmBIOS_SCRATCH_6 + NBIO_BASE(mmBIOS_SCRATCH_6_BASE_IDX)<br>
 };<br>
 <br>
diff --git a/drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c b/drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c<br>
index e0bba0bc..2eca81b 100644<br>
--- a/drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c<br>
+++ b/drivers/gpu/drm/amd/display/dc/dce80/dce80_resource.c<br>
@@ -77,6 +77,7 @@<br>
 <br>
 #ifndef mmBIOS_SCRATCH_2<br>
         #define mmBIOS_SCRATCH_2 0x05CB<br>
+       #define mmBIOS_SCRATCH_3 0x05CC<br>
         #define mmBIOS_SCRATCH_6 0x05CF<br>
 #endif<br>
 <br>
@@ -358,6 +359,7 @@ static const struct dce110_clk_src_mask cs_mask = {<br>
 };<br>
 <br>
 static const struct bios_registers bios_regs = {<br>
+       .BIOS_SCRATCH_3 = mmBIOS_SCRATCH_3,<br>
         .BIOS_SCRATCH_6 = mmBIOS_SCRATCH_6<br>
 };<br>
 <br>
-- <br>
2.7.4<br>
<br>
_______________________________________________<br>
amd-gfx mailing list<br>
<a href="mailto:amd-gfx@lists.freedesktop.org">amd-gfx@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/amd-gfx">https://lists.freedesktop.org/mailman/listinfo/amd-gfx</a><o:p></o:p></p>
</div>
</div>
</div>
</body>
</html>