lkml.org 
[lkml]   [2020]   [Dec]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.10 049/717] drm/msm/dpu: fix clock scaling on non-sc7180 board
    Date
    From: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

    [ Upstream commit cccdeda362fafd0613b571affe7199eb7d8f3fba ]

    c33b7c0389e1 ("drm/msm/dpu: add support for clk and bw scaling for
    display") has added support for handling bandwidth voting in kms path in
    addition to old mdss path. However this broke all other platforms since
    _dpu_core_perf_crtc_update_bus() will now error out instead of properly
    calculating bandwidth and core clocks. Fix
    _dpu_core_perf_crtc_update_bus() to just skip bandwidth setting instead
    of returning an error in case kms->num_paths == 0 (MDSS is used for
    bandwidth management).

    Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Fixes: c33b7c0389e1 ("drm/msm/dpu: add support for clk and bw scaling for display")
    Reviewed-by: Abhinav Kumar <abhinavk@codeaurora.org>
    Signed-off-by: Rob Clark <robdclark@chromium.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c
    index 393858ef8a832..37c8270681c23 100644
    --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c
    +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c
    @@ -219,9 +219,6 @@ static int _dpu_core_perf_crtc_update_bus(struct dpu_kms *kms,
    int i, ret = 0;
    u64 avg_bw;

    - if (!kms->num_paths)
    - return -EINVAL;
    -
    drm_for_each_crtc(tmp_crtc, crtc->dev) {
    if (tmp_crtc->enabled &&
    curr_client_type ==
    @@ -239,6 +236,9 @@ static int _dpu_core_perf_crtc_update_bus(struct dpu_kms *kms,
    }
    }

    + if (!kms->num_paths)
    + return 0;
    +
    avg_bw = perf.bw_ctl;
    do_div(avg_bw, (kms->num_paths * 1000)); /*Bps_to_icc*/

    --
    2.27.0


    \
     
     \ /
      Last update: 2020-12-28 16:21    [W:3.940 / U:0.456 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site