[PATCH] drm/dp_mst: don't send hotplug if input ports change.

Dave Airlie airlied at gmail.com
Tue Sep 15 17:39:27 PDT 2015


From: Dave Airlie <airlied at redhat.com>

I suspect we might need to rethink when we send hotplug callback
but this at least stops us from sending them when we defintely
don't need to.

DP input port state changes aren't necessary to report.

Signed-off-by: Dave Airlie <airlied at redhat.com>
---
 drivers/gpu/drm/drm_dp_mst_topology.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c
index e23df5f..cfb0b96 100644
--- a/drivers/gpu/drm/drm_dp_mst_topology.c
+++ b/drivers/gpu/drm/drm_dp_mst_topology.c
@@ -863,7 +863,8 @@ static void drm_dp_destroy_port(struct kref *kref)
 {
 	struct drm_dp_mst_port *port = container_of(kref, struct drm_dp_mst_port, kref);
 	struct drm_dp_mst_topology_mgr *mgr = port->mgr;
-	if (!port->input) {
+	bool is_input = port->input;
+	if (!is_input) {
 		port->vcpi.num_slots = 0;
 
 		kfree(port->cached_edid);
@@ -885,7 +886,10 @@ static void drm_dp_destroy_port(struct kref *kref)
 	}
 	kfree(port);
 
-	(*mgr->cbs->hotplug)(mgr);
+	/* we should only cause a hotplug if an output port changes
+	 * input ports shouldn't. */
+	if (!is_input)
+		(*mgr->cbs->hotplug)(mgr);
 }
 
 static void drm_dp_put_port(struct drm_dp_mst_port *port)
-- 
2.4.3



More information about the dri-devel mailing list