Quoting Kuogee Hsieh (2020-10-13 16:35:22)
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
Signed-off-by: Kuogee Hsieh khsieh@codeaurora.org
Can we add some sort of Fixes tag? Maybe the beginning of this DP driver support?
Tested-by: Stephen Boyd swboyd@chromium.org