]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/amd/display: do not power on eDP power rail early
authorAnthony Koo <Anthony.Koo@amd.com>
Fri, 10 May 2019 18:57:48 +0000 (14:57 -0400)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 31 May 2019 15:39:31 +0000 (10:39 -0500)
[Why]
Modern Standby may toggle display adapter state between D0
and D3 state unpredictably.
But events that cause transition to D0 are not always resulting
in a display light up scenario.

Modern eDP panels should be able to power on panel logic
quickly upon VDD going high. Based on spec, the T3 time
between VDD on and HPD high can be between 0 and 80 ms.

Doing any tricky sorts of optimization by powering on panel
VDD early during D0 transition on can negatively impact other
features due to unnecessary power drain and toggling when
final system state does not intend for the panel to be lit up.

We need OEMs to source higher end panels that have T3 time
close to 0 if they want quick S3/Modern Standby resume times.

[How]
Remove panel VDD power on in init_hw

Signed-off-by: Anthony Koo <Anthony.Koo@amd.com>
Reviewed-by: Tony Cheng <Tony.Cheng@amd.com>
Acked-by: Leo Li <sunpeng.li@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c

index f3dd117b4831217325e92d70e1d591112f957d85..3042741b165a157556bf9787e939adb8ed681280 100644 (file)
@@ -2352,9 +2352,6 @@ static void init_hw(struct dc *dc)
                 * default signal on connector). */
                struct dc_link *link = dc->links[i];
 
-               if (link->link_enc->connector.id == CONNECTOR_ID_EDP)
-                       dc->hwss.edp_power_control(link, true);
-
                link->link_enc->funcs->hw_init(link->link_enc);
        }
 
index c2207df626610f1eeeac6d5f24f6fcd521a84835..821a280eb481e01785d9840a0998c76837db0860 100644 (file)
@@ -1102,9 +1102,6 @@ static void dcn10_init_hw(struct dc *dc)
                 */
                struct dc_link *link = dc->links[i];
 
-               if (link->link_enc->connector.id == CONNECTOR_ID_EDP)
-                       dc->hwss.edp_power_control(link, true);
-
                link->link_enc->funcs->hw_init(link->link_enc);
 
                /* Check for enabled DIG to identify enabled display */