diff --git a/msm/dp/dp_debug.c b/msm/dp/dp_debug.c index 22842351b7..9bc7542596 100644 --- a/msm/dp/dp_debug.c +++ b/msm/dp/dp_debug.c @@ -54,11 +54,18 @@ struct dp_debug_private { static int dp_debug_sim_hpd_cb(void *arg, bool hpd, bool hpd_irq) { struct dp_debug_private *debug = arg; + int vdo = 0; - if (hpd_irq) - return debug->hpd->simulate_attention(debug->hpd, 0); - else + if (hpd_irq) { + vdo |= BIT(7); + + if (hpd) + vdo |= BIT(8); + + return debug->hpd->simulate_attention(debug->hpd, vdo); + } else { return debug->hpd->simulate_connect(debug->hpd, hpd); + } } static int dp_debug_attach_sim_bridge(struct dp_debug_private *debug) diff --git a/msm/dp/dp_mst_sim.c b/msm/dp/dp_mst_sim.c index c9f56d4906..c358ae7ffa 100644 --- a/msm/dp/dp_mst_sim.c +++ b/msm/dp/dp_mst_sim.c @@ -341,7 +341,7 @@ static void dp_sim_host_hpd_irq(void *host_dev) struct dp_sim_device *sim_dev = host_dev; if (sim_dev->hpd_cb) - sim_dev->hpd_cb(sim_dev->host_dev, false, true); + sim_dev->hpd_cb(sim_dev->host_dev, true, true); } int dp_sim_set_sim_mode(struct dp_aux_bridge *bridge, u32 sim_mode)