drm/msm/dp: Reorganize code to avoid forward declaration
Let's move these functions around to avoid having to forward declare dp_ctrl_on_stream_phy_test_report(). Also remove dp_ctrl_reinitialize_mainlink() forward declaration because we're doing that sort of task. Reviewed-by: Kuogee Hsieh <quic_khsieh@quicinc.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Signed-off-by: Stephen Boyd <swboyd@chromium.org> Patchwork: https://patchwork.freedesktop.org/patch/490771/ Link: https://lore.kernel.org/r/20220623002540.871994-2-swboyd@chromium.org Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Signed-off-by: Rob Clark <robdclark@chromium.org>
This commit is contained in:
parent
3cde792a55
commit
c24df3fa03
|
@ -1238,8 +1238,6 @@ static int dp_ctrl_link_train_2(struct dp_ctrl_private *ctrl,
|
|||
return -ETIMEDOUT;
|
||||
}
|
||||
|
||||
static int dp_ctrl_reinitialize_mainlink(struct dp_ctrl_private *ctrl);
|
||||
|
||||
static int dp_ctrl_link_train(struct dp_ctrl_private *ctrl,
|
||||
int *training_step)
|
||||
{
|
||||
|
@ -1535,38 +1533,6 @@ end:
|
|||
return ret;
|
||||
}
|
||||
|
||||
static int dp_ctrl_on_stream_phy_test_report(struct dp_ctrl *dp_ctrl);
|
||||
|
||||
static int dp_ctrl_process_phy_test_request(struct dp_ctrl_private *ctrl)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (!ctrl->link->phy_params.phy_test_pattern_sel) {
|
||||
drm_dbg_dp(ctrl->drm_dev,
|
||||
"no test pattern selected by sink\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* The global reset will need DP link related clocks to be
|
||||
* running. Add the global reset just before disabling the
|
||||
* link clocks and core clocks.
|
||||
*/
|
||||
ret = dp_ctrl_off(&ctrl->dp_ctrl);
|
||||
if (ret) {
|
||||
DRM_ERROR("failed to disable DP controller\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = dp_ctrl_on_link(&ctrl->dp_ctrl);
|
||||
if (!ret)
|
||||
ret = dp_ctrl_on_stream_phy_test_report(&ctrl->dp_ctrl);
|
||||
else
|
||||
DRM_ERROR("failed to enable DP link controller\n");
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static bool dp_ctrl_send_phy_test_pattern(struct dp_ctrl_private *ctrl)
|
||||
{
|
||||
bool success = false;
|
||||
|
@ -1619,6 +1585,56 @@ static bool dp_ctrl_send_phy_test_pattern(struct dp_ctrl_private *ctrl)
|
|||
return success;
|
||||
}
|
||||
|
||||
static int dp_ctrl_on_stream_phy_test_report(struct dp_ctrl *dp_ctrl)
|
||||
{
|
||||
int ret;
|
||||
struct dp_ctrl_private *ctrl;
|
||||
|
||||
ctrl = container_of(dp_ctrl, struct dp_ctrl_private, dp_ctrl);
|
||||
|
||||
ctrl->dp_ctrl.pixel_rate = ctrl->panel->dp_mode.drm_mode.clock;
|
||||
|
||||
ret = dp_ctrl_enable_stream_clocks(ctrl);
|
||||
if (ret) {
|
||||
DRM_ERROR("Failed to start pixel clocks. ret=%d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
dp_ctrl_send_phy_test_pattern(ctrl);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int dp_ctrl_process_phy_test_request(struct dp_ctrl_private *ctrl)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (!ctrl->link->phy_params.phy_test_pattern_sel) {
|
||||
drm_dbg_dp(ctrl->drm_dev,
|
||||
"no test pattern selected by sink\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* The global reset will need DP link related clocks to be
|
||||
* running. Add the global reset just before disabling the
|
||||
* link clocks and core clocks.
|
||||
*/
|
||||
ret = dp_ctrl_off(&ctrl->dp_ctrl);
|
||||
if (ret) {
|
||||
DRM_ERROR("failed to disable DP controller\n");
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = dp_ctrl_on_link(&ctrl->dp_ctrl);
|
||||
if (!ret)
|
||||
ret = dp_ctrl_on_stream_phy_test_report(&ctrl->dp_ctrl);
|
||||
else
|
||||
DRM_ERROR("failed to enable DP link controller\n");
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void dp_ctrl_handle_sink_request(struct dp_ctrl *dp_ctrl)
|
||||
{
|
||||
struct dp_ctrl_private *ctrl;
|
||||
|
@ -1816,26 +1832,6 @@ static int dp_ctrl_link_retrain(struct dp_ctrl_private *ctrl)
|
|||
return dp_ctrl_setup_main_link(ctrl, &training_step);
|
||||
}
|
||||
|
||||
static int dp_ctrl_on_stream_phy_test_report(struct dp_ctrl *dp_ctrl)
|
||||
{
|
||||
int ret;
|
||||
struct dp_ctrl_private *ctrl;
|
||||
|
||||
ctrl = container_of(dp_ctrl, struct dp_ctrl_private, dp_ctrl);
|
||||
|
||||
ctrl->dp_ctrl.pixel_rate = ctrl->panel->dp_mode.drm_mode.clock;
|
||||
|
||||
ret = dp_ctrl_enable_stream_clocks(ctrl);
|
||||
if (ret) {
|
||||
DRM_ERROR("Failed to start pixel clocks. ret=%d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
dp_ctrl_send_phy_test_pattern(ctrl);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int dp_ctrl_on_stream(struct dp_ctrl *dp_ctrl, bool force_link_train)
|
||||
{
|
||||
int ret = 0;
|
||||
|
|
Loading…
Reference in New Issue