Skip to content

Commit 1d233b1

Browse files
committed
drm/msm/dpu: set pdpu->is_rt_pipe early in dpu_plane_sspp_atomic_update()
The function dpu_plane_sspp_atomic_update() updates pdpu->is_rt_pipe flag, but after the commit 854f6f1 ("drm/msm/dpu: update the qos remap only if the client type changes") it sets the flag late, after all the qos functions have updated QoS programming. Move the flag update back to the place where it happened before the mentioned commit to let the pipe be programmed according to its current RT/non-RT state. Fixes: 854f6f1 ("drm/msm/dpu: update the qos remap only if the client type changes") Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com> Patchwork: https://patchwork.freedesktop.org/patch/516239/ Link: https://lore.kernel.org/r/20221229191856.3508092-2-dmitry.baryshkov@linaro.org Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
1 parent 0b5a8e8 commit 1d233b1

1 file changed

Lines changed: 6 additions & 9 deletions

File tree

drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1126,7 +1126,7 @@ static void dpu_plane_sspp_atomic_update(struct drm_plane *plane)
11261126
struct dpu_plane_state *pstate = to_dpu_plane_state(state);
11271127
struct drm_crtc *crtc = state->crtc;
11281128
struct drm_framebuffer *fb = state->fb;
1129-
bool is_rt_pipe, update_qos_remap;
1129+
bool is_rt_pipe;
11301130
const struct dpu_format *fmt =
11311131
to_dpu_format(msm_framebuffer_format(fb));
11321132
struct dpu_hw_pipe_cfg pipe_cfg;
@@ -1138,6 +1138,9 @@ static void dpu_plane_sspp_atomic_update(struct drm_plane *plane)
11381138
pstate->pending = true;
11391139

11401140
is_rt_pipe = (dpu_crtc_get_client_type(crtc) != NRT_CLIENT);
1141+
pstate->needs_qos_remap |= (is_rt_pipe != pdpu->is_rt_pipe);
1142+
pdpu->is_rt_pipe = is_rt_pipe;
1143+
11411144
_dpu_plane_set_qos_ctrl(plane, false, DPU_PLANE_QOS_PANIC_CTRL);
11421145

11431146
DPU_DEBUG_PLANE(pdpu, "FB[%u] " DRM_RECT_FP_FMT "->crtc%u " DRM_RECT_FMT
@@ -1219,14 +1222,8 @@ static void dpu_plane_sspp_atomic_update(struct drm_plane *plane)
12191222
_dpu_plane_set_ot_limit(plane, crtc, &pipe_cfg);
12201223
}
12211224

1222-
update_qos_remap = (is_rt_pipe != pdpu->is_rt_pipe) ||
1223-
pstate->needs_qos_remap;
1224-
1225-
if (update_qos_remap) {
1226-
if (is_rt_pipe != pdpu->is_rt_pipe)
1227-
pdpu->is_rt_pipe = is_rt_pipe;
1228-
else if (pstate->needs_qos_remap)
1229-
pstate->needs_qos_remap = false;
1225+
if (pstate->needs_qos_remap) {
1226+
pstate->needs_qos_remap = false;
12301227
_dpu_plane_set_qos_remap(plane);
12311228
}
12321229

0 commit comments

Comments
 (0)