Message ID | 20220617204750.2347797-2-swboyd@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/msm/dp: More cleanups for force link train | expand |
On 17/06/2022 23:47, Stephen Boyd wrote: > 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. > > Cc: Kuogee Hsieh <quic_khsieh@quicinc.com> > Signed-off-by: Stephen Boyd <swboyd@chromium.org> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > drivers/gpu/drm/msm/dp/dp_ctrl.c | 104 +++++++++++++++---------------- > 1 file changed, 50 insertions(+), 54 deletions(-) > > diff --git a/drivers/gpu/drm/msm/dp/dp_ctrl.c b/drivers/gpu/drm/msm/dp/dp_ctrl.c > index 703249384e7c..bd445e683cfc 100644 > --- a/drivers/gpu/drm/msm/dp/dp_ctrl.c > +++ b/drivers/gpu/drm/msm/dp/dp_ctrl.c > @@ -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) > { > @@ -1534,38 +1532,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; > @@ -1618,6 +1584,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; > @@ -1815,26 +1831,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;
On 6/17/2022 3:50 PM, Dmitry Baryshkov wrote: > On 17/06/2022 23:47, Stephen Boyd wrote: >> 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. >> >> Cc: Kuogee Hsieh <quic_khsieh@quicinc.com> >> Signed-off-by: Stephen Boyd <swboyd@chromium.org> > > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Reviewed-by: Kuogee Hsieh <quic_khsieh@quicinc.com> > >> --- >> drivers/gpu/drm/msm/dp/dp_ctrl.c | 104 +++++++++++++++---------------- >> 1 file changed, 50 insertions(+), 54 deletions(-) >> >> diff --git a/drivers/gpu/drm/msm/dp/dp_ctrl.c >> b/drivers/gpu/drm/msm/dp/dp_ctrl.c >> index 703249384e7c..bd445e683cfc 100644 >> --- a/drivers/gpu/drm/msm/dp/dp_ctrl.c >> +++ b/drivers/gpu/drm/msm/dp/dp_ctrl.c >> @@ -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) >> { >> @@ -1534,38 +1532,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; >> @@ -1618,6 +1584,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; >> @@ -1815,26 +1831,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; > >
diff --git a/drivers/gpu/drm/msm/dp/dp_ctrl.c b/drivers/gpu/drm/msm/dp/dp_ctrl.c index 703249384e7c..bd445e683cfc 100644 --- a/drivers/gpu/drm/msm/dp/dp_ctrl.c +++ b/drivers/gpu/drm/msm/dp/dp_ctrl.c @@ -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) { @@ -1534,38 +1532,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; @@ -1618,6 +1584,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; @@ -1815,26 +1831,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;
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. Cc: Kuogee Hsieh <quic_khsieh@quicinc.com> Signed-off-by: Stephen Boyd <swboyd@chromium.org> --- drivers/gpu/drm/msm/dp/dp_ctrl.c | 104 +++++++++++++++---------------- 1 file changed, 50 insertions(+), 54 deletions(-)