All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] drm/msm/dp: service only one irq_hpd if there are multiple irq_hpd pending
@ 2021-04-16 20:27 ` Kuogee Hsieh
  0 siblings, 0 replies; 22+ messages in thread
From: Kuogee Hsieh @ 2021-04-16 20:27 UTC (permalink / raw)
  To: robdclark, sean, swboyd
  Cc: abhinavk, aravindh, khsieh, airlied, daniel, linux-arm-msm,
	dri-devel, freedreno, linux-kernel

Some dongle may generate more than one irq_hpd events in a short period of
time. This patch will treat those irq_hpd events as single one and service
only one irq_hpd event.

Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
---
 drivers/gpu/drm/msm/dp/dp_display.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c
index 5a39da6..0a7d383 100644
--- a/drivers/gpu/drm/msm/dp/dp_display.c
+++ b/drivers/gpu/drm/msm/dp/dp_display.c
@@ -707,6 +707,9 @@ static int dp_irq_hpd_handle(struct dp_display_private *dp, u32 data)
 		return 0;
 	}
 
+	/* only handle first irq_hpd in case of multiple irs_hpd pending */
+	dp_del_event(dp, EV_IRQ_HPD_INT);
+
 	ret = dp_display_usbpd_attention_cb(&dp->pdev->dev);
 	if (ret == -ECONNRESET) { /* cable unplugged */
 		dp->core_initialized = false;
@@ -1300,6 +1303,9 @@ static int dp_pm_suspend(struct device *dev)
 	/* host_init will be called at pm_resume */
 	dp->core_initialized = false;
 
+	/* system suspended, delete pending irq_hdps */
+	dp_del_event(dp, EV_IRQ_HPD_INT);
+
 	mutex_unlock(&dp->event_mutex);
 
 	return 0;
@@ -1496,6 +1502,9 @@ int msm_dp_display_disable(struct msm_dp *dp, struct drm_encoder *encoder)
 	/* stop sentinel checking */
 	dp_del_event(dp_display, EV_DISCONNECT_PENDING_TIMEOUT);
 
+	/* link is down, delete pending irq_hdps */
+	dp_del_event(dp_display, EV_IRQ_HPD_INT);
+
 	dp_display_disable(dp_display, 0);
 
 	rc = dp_display_unprepare(dp);
-- 
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project


^ permalink raw reply related	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2021-05-04  4:28 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-16 20:27 [PATCH 1/2] drm/msm/dp: service only one irq_hpd if there are multiple irq_hpd pending Kuogee Hsieh
2021-04-16 20:27 ` Kuogee Hsieh
2021-04-20 22:01 ` Stephen Boyd
2021-04-20 22:01   ` Stephen Boyd
2021-04-21 17:26   ` khsieh
2021-04-21 17:26     ` khsieh
2021-04-21 18:55     ` aravindh
2021-04-21 18:55       ` aravindh
2021-04-28  0:00       ` Stephen Boyd
2021-04-28  0:00         ` Stephen Boyd
2021-04-28 17:38         ` khsieh
2021-04-28 17:38           ` khsieh
2021-04-29  9:26           ` Stephen Boyd
2021-04-29  9:26             ` Stephen Boyd
2021-04-29 17:23             ` khsieh
2021-04-29 17:23               ` khsieh
2021-04-30  3:11               ` Stephen Boyd
2021-04-30  3:11                 ` Stephen Boyd
2021-05-03 19:23                 ` khsieh
2021-05-03 19:23                   ` khsieh
2021-05-04  4:28                   ` Stephen Boyd
2021-05-04  4:28                     ` Stephen Boyd

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.