diff mbox

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

Message ID 1442363967-24859-1-git-send-email-airlied@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Dave Airlie Sept. 16, 2015, 12:39 a.m. UTC
From: Dave Airlie <airlied@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@redhat.com>
---
 drivers/gpu/drm/drm_dp_mst_topology.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
diff mbox

Patch

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)