• Wenjing Liu's avatar
    drm/amd/display: rework recent update PHY state commit · 9c75891f
    Wenjing Liu authored
    [why]
    Original change 594b237b ("drm/amd/display: Add
    interface to track PHY state") was implemented by assuming stream's
    dpms off is equivalent to PHY power off.
    This assumption doesn't hold in following situations:
    1. MST multiple stream scenario, where multiple streams are sharing the
    same PHY output. Toggle dpms off for one of the stream doesn't power
    off the PHY due to the presence of other streams.
    2. enable stream failure scenario, where enable stream fails due to
    failure of link training. This will cause DPMS off is set to false, while
    the actual PHY power state is off in certain cases.
    Due to the problematic assumption, the logic will skip disabling
    other streams for MST multiple stream scenario, therefore PHY is
    not actually powered off.
    
    [how]
    1. Rework this refactor by moving PHY state update down to hardware
    level, where we update PHY state in place when hardware sequencer
    is actually changing the power state of the PHY hardware.
    2. Reimplement symclk on TX off workaround in place when we are actually
    calling transmitter control to power off PHY in dcn32. Note the workaround is
    added due to the lack of proper software interface to set TX while keeping
    symclk on. We plan to address this interface problem so we can set TX off
    only without affecting symclk in future dcn versions.
    
    Fixes: 594b237b ("drm/amd/display: Add interface to track PHY state")
    Reviewed-by: default avatarJun Lei <Jun.Lei@amd.com>
    Acked-by: default avatarWayne Lin <wayne.lin@amd.com>
    Signed-off-by: default avatarWenjing Liu <wenjing.liu@amd.com>
    Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    9c75891f
dcn30_init.c 6.99 KB