|
@@ -943,6 +943,26 @@ static void dp_ctrl_fec_setup(struct dp_ctrl_private *ctrl)
|
|
DP_WARN("failed to enable sink fec\n");
|
|
DP_WARN("failed to enable sink fec\n");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static int dp_ctrl_mst_send_act(struct dp_ctrl_private *ctrl)
|
|
|
|
+{
|
|
|
|
+ bool act_complete;
|
|
|
|
+
|
|
|
|
+ if (!ctrl->mst_mode)
|
|
|
|
+ return 0;
|
|
|
|
+
|
|
|
|
+ ctrl->catalog->trigger_act(ctrl->catalog);
|
|
|
|
+ msleep(20); /* needs 1 frame time */
|
|
|
|
+
|
|
|
|
+ ctrl->catalog->read_act_complete_sts(ctrl->catalog, &act_complete);
|
|
|
|
+
|
|
|
|
+ if (!act_complete)
|
|
|
|
+ DP_ERR("mst act trigger complete failed\n");
|
|
|
|
+ else
|
|
|
|
+ DP_MST_DEBUG("mst ACT trigger complete SUCCESS\n");
|
|
|
|
+
|
|
|
|
+ return 0;
|
|
|
|
+}
|
|
|
|
+
|
|
static int dp_ctrl_link_maintenance(struct dp_ctrl *dp_ctrl)
|
|
static int dp_ctrl_link_maintenance(struct dp_ctrl *dp_ctrl)
|
|
{
|
|
{
|
|
int ret = 0;
|
|
int ret = 0;
|
|
@@ -980,6 +1000,7 @@ static int dp_ctrl_link_maintenance(struct dp_ctrl *dp_ctrl)
|
|
|
|
|
|
if (ctrl->stream_count) {
|
|
if (ctrl->stream_count) {
|
|
dp_ctrl_send_video(ctrl);
|
|
dp_ctrl_send_video(ctrl);
|
|
|
|
+ dp_ctrl_mst_send_act(ctrl);
|
|
dp_ctrl_wait4video_ready(ctrl);
|
|
dp_ctrl_wait4video_ready(ctrl);
|
|
dp_ctrl_fec_setup(ctrl);
|
|
dp_ctrl_fec_setup(ctrl);
|
|
}
|
|
}
|
|
@@ -1168,26 +1189,6 @@ static void dp_ctrl_mst_calculate_rg(struct dp_ctrl_private *ctrl,
|
|
DP_DEBUG("x_int: %d, y_frac_enum: %d\n", x_int, y_frac_enum);
|
|
DP_DEBUG("x_int: %d, y_frac_enum: %d\n", x_int, y_frac_enum);
|
|
}
|
|
}
|
|
|
|
|
|
-static int dp_ctrl_mst_send_act(struct dp_ctrl_private *ctrl)
|
|
|
|
-{
|
|
|
|
- bool act_complete;
|
|
|
|
-
|
|
|
|
- if (!ctrl->mst_mode)
|
|
|
|
- return 0;
|
|
|
|
-
|
|
|
|
- ctrl->catalog->trigger_act(ctrl->catalog);
|
|
|
|
- msleep(20); /* needs 1 frame time */
|
|
|
|
-
|
|
|
|
- ctrl->catalog->read_act_complete_sts(ctrl->catalog, &act_complete);
|
|
|
|
-
|
|
|
|
- if (!act_complete)
|
|
|
|
- DP_ERR("mst act trigger complete failed\n");
|
|
|
|
- else
|
|
|
|
- DP_MST_DEBUG("mst ACT trigger complete SUCCESS\n");
|
|
|
|
-
|
|
|
|
- return 0;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
static void dp_ctrl_mst_stream_setup(struct dp_ctrl_private *ctrl,
|
|
static void dp_ctrl_mst_stream_setup(struct dp_ctrl_private *ctrl,
|
|
struct dp_panel *panel)
|
|
struct dp_panel *panel)
|
|
{
|
|
{
|