Skip to content
  • Kuogee Hsieh's avatar
    19e52bcb
    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
    drm/msm/dp: return correct connection status after suspend
    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>
Loading