• Kuogee Hsieh's avatar
    drm/msm/dp: return correct connection status after suspend · 19e52bcb
    Kuogee Hsieh authored
    During suspend, dp host controller and hpd block are disabled due to
    both ahb and aux clock are disabled. Therefore hpd plug/unplug interrupts
    will not be generated. At dp_pm_resume(), reinitialize both dp host
    controller and hpd block so that hpd plug/unplug interrupts will be
    generated and handled by driver so that hpd connection state is updated
    correctly. This patch will fix link training flaky issues.
    
    Changes in v2:
    -- use container_of to cast correct dp_display_private pointer
       at both dp_pm_suspend() and dp_pm_resume().
    
    Changes in v3:
    -- replace hpd_state atomic_t  with u32
    
    Changes in v4
    -- call dp_display_host_deinit() at dp_pm_suspend()
    -- call dp_display_host_init() at msm_dp_display_enable()
    -- fix phy->init_count unbalance which causes link training failed
    
    Changes in v5
    --  add Fixes tag
    
    Fixes:  8ede2ecc (drm/msm/dp: Add DP compliance tests on Snapdragon Chipsets)
    Tested-by: default avatarStephen Boyd <swboyd@chromium.org>
    Signed-off-by: default avatarKuogee Hsieh <khsieh@codeaurora.org>
    Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
    19e52bcb
dp_display.c 32.2 KB