فهرست منبع

disp: msm: dp: send hotplug notification on state change

Send the hotplug notification to the user space only when there
is a state change e.g. from connect to disconnect, or vice versa.
This ensures that there are no spurious notifications that are
sent to the user space.

CRs-Fixed: 2478822
Change-Id: Ic3fdc95de5f2573a14cb526203d7e4ab58c567ba
Signed-off-by: Tatenda Chipeperekwa <[email protected]>
Tatenda Chipeperekwa 6 سال پیش
والد
کامیت
0ca2e2dc14
1فایلهای تغییر یافته به همراه9 افزوده شده و 0 حذف شده
  1. 9 0
      msm/dp/dp_display.c

+ 9 - 0
msm/dp/dp_display.c

@@ -64,6 +64,7 @@ struct dp_display_private {
 	bool core_initialized;
 	bool core_initialized;
 	bool power_on;
 	bool power_on;
 	bool is_connected;
 	bool is_connected;
+	enum drm_connector_status cached_connector_status;
 
 
 	atomic_t aborted;
 	atomic_t aborted;
 
 
@@ -568,6 +569,13 @@ static void dp_display_send_hpd_event(struct dp_display_private *dp)
 	}
 	}
 
 
 	connector->status = connector->funcs->detect(connector, false);
 	connector->status = connector->funcs->detect(connector, false);
+	if (dp->cached_connector_status == connector->status) {
+		DP_DEBUG("connector status (%d) unchanged, skipping uevent\n",
+				dp->cached_connector_status);
+		return;
+	}
+
+	dp->cached_connector_status = connector->status;
 
 
 	dev = connector->dev;
 	dev = connector->dev;
 
 
@@ -1368,6 +1376,7 @@ static int dp_init_sub_modules(struct dp_display_private *dp)
 		goto error_debug;
 		goto error_debug;
 	}
 	}
 
 
+	dp->cached_connector_status = connector_status_disconnected;
 	dp->tot_dsc_blks_in_use = 0;
 	dp->tot_dsc_blks_in_use = 0;
 
 
 	dp->debug->hdcp_disabled = hdcp_disabled;
 	dp->debug->hdcp_disabled = hdcp_disabled;