|
@@ -732,6 +732,7 @@ static void dp_display_send_hpd_event(struct dp_display_private *dp)
|
|
char name[HPD_STRING_SIZE], status[HPD_STRING_SIZE],
|
|
char name[HPD_STRING_SIZE], status[HPD_STRING_SIZE],
|
|
bpp[HPD_STRING_SIZE], pattern[HPD_STRING_SIZE];
|
|
bpp[HPD_STRING_SIZE], pattern[HPD_STRING_SIZE];
|
|
char *envp[5];
|
|
char *envp[5];
|
|
|
|
+ int rc = 0;
|
|
|
|
|
|
if (dp->mst.mst_active) {
|
|
if (dp->mst.mst_active) {
|
|
DP_DEBUG("skip notification for mst mode\n");
|
|
DP_DEBUG("skip notification for mst mode\n");
|
|
@@ -757,6 +758,11 @@ static void dp_display_send_hpd_event(struct dp_display_private *dp)
|
|
|
|
|
|
dev = connector->dev;
|
|
dev = connector->dev;
|
|
|
|
|
|
|
|
+ if (dp->debug->skip_uevent) {
|
|
|
|
+ DP_INFO("skipping uevent\n");
|
|
|
|
+ goto update_state;
|
|
|
|
+ }
|
|
|
|
+
|
|
snprintf(name, HPD_STRING_SIZE, "name=%s", connector->name);
|
|
snprintf(name, HPD_STRING_SIZE, "name=%s", connector->name);
|
|
snprintf(status, HPD_STRING_SIZE, "status=%s",
|
|
snprintf(status, HPD_STRING_SIZE, "status=%s",
|
|
drm_get_connector_status_name(connector->status));
|
|
drm_get_connector_status_name(connector->status));
|
|
@@ -766,16 +772,17 @@ static void dp_display_send_hpd_event(struct dp_display_private *dp)
|
|
snprintf(pattern, HPD_STRING_SIZE, "pattern=%d",
|
|
snprintf(pattern, HPD_STRING_SIZE, "pattern=%d",
|
|
dp->link->test_video.test_video_pattern);
|
|
dp->link->test_video.test_video_pattern);
|
|
|
|
|
|
- DP_DEBUG("[%s]:[%s] [%s] [%s]\n", name, status, bpp, pattern);
|
|
|
|
|
|
+ DP_INFO("[%s]:[%s] [%s] [%s]\n", name, status, bpp, pattern);
|
|
envp[0] = name;
|
|
envp[0] = name;
|
|
envp[1] = status;
|
|
envp[1] = status;
|
|
envp[2] = bpp;
|
|
envp[2] = bpp;
|
|
envp[3] = pattern;
|
|
envp[3] = pattern;
|
|
envp[4] = NULL;
|
|
envp[4] = NULL;
|
|
- if (!dp->debug->skip_uevent)
|
|
|
|
- kobject_uevent_env(&dev->primary->kdev->kobj, KOBJ_CHANGE,
|
|
|
|
- envp);
|
|
|
|
|
|
|
|
|
|
+ rc = kobject_uevent_env(&dev->primary->kdev->kobj, KOBJ_CHANGE, envp);
|
|
|
|
+ DP_INFO("uevent %s: %d\n", rc ? "failure" : "success", rc);
|
|
|
|
+
|
|
|
|
+update_state:
|
|
if (connector->status == connector_status_connected) {
|
|
if (connector->status == connector_status_connected) {
|
|
dp_display_state_add(DP_STATE_CONNECT_NOTIFIED);
|
|
dp_display_state_add(DP_STATE_CONNECT_NOTIFIED);
|
|
dp_display_state_remove(DP_STATE_DISCONNECT_NOTIFIED);
|
|
dp_display_state_remove(DP_STATE_DISCONNECT_NOTIFIED);
|