|
@@ -839,11 +839,10 @@ static int dp_display_send_hpd_notification(struct dp_display_private *dp)
|
|
|
DP_WARN("%s timeout\n", hpd ? "connect" : "disconnect");
|
|
|
ret = -EINVAL;
|
|
|
}
|
|
|
- SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, dp->state, hpd, ret);
|
|
|
- return ret;
|
|
|
+
|
|
|
skip_wait:
|
|
|
SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, dp->state, hpd, ret);
|
|
|
- return 0;
|
|
|
+ return ret;
|
|
|
}
|
|
|
|
|
|
static void dp_display_update_mst_state(struct dp_display_private *dp,
|
|
@@ -1898,6 +1897,9 @@ static int dp_display_set_mode(struct dp_display *dp_display, void *panel,
|
|
|
}
|
|
|
|
|
|
dp = container_of(dp_display, struct dp_display_private, dp_display);
|
|
|
+ SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY, dp->state,
|
|
|
+ mode->timing.h_active, mode->timing.v_active,
|
|
|
+ mode->timing.refresh_rate);
|
|
|
|
|
|
mutex_lock(&dp->session_lock);
|
|
|
mode->timing.bpp =
|
|
@@ -1910,6 +1912,7 @@ static int dp_display_set_mode(struct dp_display *dp_display, void *panel,
|
|
|
|
|
|
dp_panel->pinfo = mode->timing;
|
|
|
mutex_unlock(&dp->session_lock);
|
|
|
+ SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, dp->state);
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
@@ -2030,6 +2033,8 @@ static int dp_display_set_stream_info(struct dp_display *dp_display,
|
|
|
}
|
|
|
|
|
|
dp = container_of(dp_display, struct dp_display_private, dp_display);
|
|
|
+ SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY, dp->state, strm_id,
|
|
|
+ start_slot, num_slots);
|
|
|
|
|
|
mutex_lock(&dp->session_lock);
|
|
|
|
|
@@ -2043,6 +2048,7 @@ static int dp_display_set_stream_info(struct dp_display *dp_display,
|
|
|
}
|
|
|
|
|
|
mutex_unlock(&dp->session_lock);
|
|
|
+ SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, dp->state, rc);
|
|
|
|
|
|
return rc;
|
|
|
}
|
|
@@ -2182,6 +2188,7 @@ end:
|
|
|
|
|
|
complete_all(&dp->notification_comp);
|
|
|
mutex_unlock(&dp->session_lock);
|
|
|
+ DP_DEBUG("display post enable complete. state: 0x%x\n", dp->state);
|
|
|
SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, dp->state);
|
|
|
return 0;
|
|
|
}
|
|
@@ -2889,6 +2896,7 @@ static int dp_display_init_aux_switch(struct dp_display_private *dp)
|
|
|
goto end;
|
|
|
}
|
|
|
|
|
|
+ SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY);
|
|
|
dp->aux_switch_node = of_parse_phandle(dp->pdev->dev.of_node,
|
|
|
phandle, 0);
|
|
|
if (!dp->aux_switch_node) {
|
|
@@ -2908,6 +2916,7 @@ static int dp_display_init_aux_switch(struct dp_display_private *dp)
|
|
|
|
|
|
fsa4480_unreg_notifier(&nb, dp->aux_switch_node);
|
|
|
end:
|
|
|
+ SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, rc);
|
|
|
return rc;
|
|
|
}
|
|
|
|
|
@@ -2922,6 +2931,7 @@ static int dp_display_mst_install(struct dp_display *dp_display,
|
|
|
}
|
|
|
|
|
|
dp = container_of(dp_display, struct dp_display_private, dp_display);
|
|
|
+ SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY, dp->state);
|
|
|
|
|
|
if (!mst_install_info->cbs->hpd || !mst_install_info->cbs->hpd_irq) {
|
|
|
DP_ERR("invalid mst cbs\n");
|
|
@@ -2939,6 +2949,7 @@ static int dp_display_mst_install(struct dp_display *dp_display,
|
|
|
dp->mst.drm_registered = true;
|
|
|
|
|
|
DP_MST_DEBUG("dp mst drm installed\n");
|
|
|
+ SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, dp->state);
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
@@ -2953,6 +2964,7 @@ static int dp_display_mst_uninstall(struct dp_display *dp_display)
|
|
|
}
|
|
|
|
|
|
dp = container_of(dp_display, struct dp_display_private, dp_display);
|
|
|
+ SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY, dp->state);
|
|
|
|
|
|
if (!dp->mst.drm_registered) {
|
|
|
DP_DEBUG("drm mst not registered\n");
|
|
@@ -2965,6 +2977,7 @@ static int dp_display_mst_uninstall(struct dp_display *dp_display)
|
|
|
dp->mst.drm_registered = false;
|
|
|
|
|
|
DP_MST_DEBUG("dp mst drm uninstalled\n");
|
|
|
+ SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, dp->state);
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
@@ -2986,12 +2999,13 @@ static int dp_display_mst_connector_install(struct dp_display *dp_display,
|
|
|
|
|
|
dp = container_of(dp_display, struct dp_display_private, dp_display);
|
|
|
|
|
|
+ SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY, dp->state);
|
|
|
mutex_lock(&dp->session_lock);
|
|
|
|
|
|
if (!dp->mst.drm_registered) {
|
|
|
DP_DEBUG("drm mst not registered\n");
|
|
|
- mutex_unlock(&dp->session_lock);
|
|
|
- return -EPERM;
|
|
|
+ rc = -EPERM;
|
|
|
+ goto end;
|
|
|
}
|
|
|
|
|
|
panel_in.dev = &dp->pdev->dev;
|
|
@@ -3006,8 +3020,7 @@ static int dp_display_mst_connector_install(struct dp_display *dp_display,
|
|
|
if (IS_ERR(dp_panel)) {
|
|
|
rc = PTR_ERR(dp_panel);
|
|
|
DP_ERR("failed to initialize panel, rc = %d\n", rc);
|
|
|
- mutex_unlock(&dp->session_lock);
|
|
|
- return rc;
|
|
|
+ goto end;
|
|
|
}
|
|
|
|
|
|
dp_panel->audio = dp_audio_get(dp->pdev, dp_panel, &dp->catalog->audio);
|
|
@@ -3015,8 +3028,7 @@ static int dp_display_mst_connector_install(struct dp_display *dp_display,
|
|
|
rc = PTR_ERR(dp_panel->audio);
|
|
|
DP_ERR("[mst] failed to initialize audio, rc = %d\n", rc);
|
|
|
dp_panel->audio = NULL;
|
|
|
- mutex_unlock(&dp->session_lock);
|
|
|
- return rc;
|
|
|
+ goto end;
|
|
|
}
|
|
|
|
|
|
DP_MST_DEBUG("dp mst connector installed. conn:%d\n",
|
|
@@ -3028,8 +3040,8 @@ static int dp_display_mst_connector_install(struct dp_display *dp_display,
|
|
|
GFP_KERNEL);
|
|
|
if (!mst_connector) {
|
|
|
mutex_unlock(&dp->debug->dp_mst_connector_list.lock);
|
|
|
- mutex_unlock(&dp->session_lock);
|
|
|
- return -ENOMEM;
|
|
|
+ rc = -ENOMEM;
|
|
|
+ goto end;
|
|
|
}
|
|
|
|
|
|
cached_connector = &dp->debug->mst_connector_cache;
|
|
@@ -3054,9 +3066,11 @@ static int dp_display_mst_connector_install(struct dp_display *dp_display,
|
|
|
&dp->debug->dp_mst_connector_list.list);
|
|
|
|
|
|
mutex_unlock(&dp->debug->dp_mst_connector_list.lock);
|
|
|
+end:
|
|
|
mutex_unlock(&dp->session_lock);
|
|
|
+ SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, dp->state, rc);
|
|
|
|
|
|
- return 0;
|
|
|
+ return rc;
|
|
|
}
|
|
|
|
|
|
static int dp_display_mst_connector_uninstall(struct dp_display *dp_display,
|
|
@@ -3075,6 +3089,7 @@ static int dp_display_mst_connector_uninstall(struct dp_display *dp_display,
|
|
|
|
|
|
dp = container_of(dp_display, struct dp_display_private, dp_display);
|
|
|
|
|
|
+ SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY, dp->state);
|
|
|
mutex_lock(&dp->session_lock);
|
|
|
|
|
|
if (!dp->mst.drm_registered) {
|
|
@@ -3118,6 +3133,7 @@ static int dp_display_mst_connector_uninstall(struct dp_display *dp_display,
|
|
|
|
|
|
mutex_unlock(&dp->debug->dp_mst_connector_list.lock);
|
|
|
mutex_unlock(&dp->session_lock);
|
|
|
+ SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, dp->state);
|
|
|
|
|
|
return rc;
|
|
|
}
|
|
@@ -3460,6 +3476,8 @@ static void dp_display_set_mst_state(void *dp_display,
|
|
|
}
|
|
|
|
|
|
dp = container_of(g_dp_display, struct dp_display_private, dp_display);
|
|
|
+ SDE_EVT32_EXTERNAL(mst_state, dp->mst.mst_active);
|
|
|
+
|
|
|
if (dp->mst.mst_active && dp->mst.cbs.set_drv_state)
|
|
|
dp->mst.cbs.set_drv_state(g_dp_display, mst_state);
|
|
|
}
|
|
@@ -3489,6 +3507,7 @@ static int dp_pm_prepare(struct device *dev)
|
|
|
struct dp_display_private *dp = container_of(g_dp_display,
|
|
|
struct dp_display_private, dp_display);
|
|
|
|
|
|
+ SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY);
|
|
|
mutex_lock(&dp->session_lock);
|
|
|
dp_display_set_mst_state(g_dp_display, PM_SUSPEND);
|
|
|
|
|
@@ -3508,6 +3527,7 @@ static int dp_pm_prepare(struct device *dev)
|
|
|
|
|
|
dp_display_state_add(DP_STATE_SUSPENDED);
|
|
|
mutex_unlock(&dp->session_lock);
|
|
|
+ SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, dp->state);
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
@@ -3517,6 +3537,7 @@ static void dp_pm_complete(struct device *dev)
|
|
|
struct dp_display_private *dp = container_of(g_dp_display,
|
|
|
struct dp_display_private, dp_display);
|
|
|
|
|
|
+ SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_ENTRY);
|
|
|
mutex_lock(&dp->session_lock);
|
|
|
dp_display_set_mst_state(g_dp_display, PM_DEFAULT);
|
|
|
|
|
@@ -3536,6 +3557,7 @@ static void dp_pm_complete(struct device *dev)
|
|
|
|
|
|
dp_display_state_remove(DP_STATE_SUSPENDED);
|
|
|
mutex_unlock(&dp->session_lock);
|
|
|
+ SDE_EVT32_EXTERNAL(SDE_EVTLOG_FUNC_EXIT, dp->state);
|
|
|
}
|
|
|
|
|
|
static const struct dev_pm_ops dp_pm_ops = {
|