Commit c24df3fa authored by Stephen Boyd's avatar Stephen Boyd Committed by Rob Clark
Browse files

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: default avatarKuogee Hsieh <quic_khsieh@quicinc.com>
Reviewed-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: default avatarStephen 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: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
parent 3cde792a
Loading
Loading
Loading
Loading
+50 −54
Original line number Diff line number Diff line
@@ -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 @@ static int dp_ctrl_link_maintenance(struct dp_ctrl_private *ctrl)
	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;