Commit b243c8c0 authored by Dmitry Baryshkov's avatar Dmitry Baryshkov Committed by Rob Clark

drm/msm/dpu: remove pipe_qos_cfg from struct dpu_plane

The pipe_qos_cfg is used only in _dpu_plane_set_qos_ctrl(), so remove it
from the dpu_plane struct and allocate it on stack when necessary.
Signed-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: default avatarAbhinav Kumar <abhinavk@codeaurora.org>
Link: https://lore.kernel.org/r/20210930140002.308628-3-dmitry.baryshkov@linaro.orgSigned-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
parent 44aab22d
...@@ -105,7 +105,6 @@ struct dpu_plane { ...@@ -105,7 +105,6 @@ struct dpu_plane {
struct dpu_hw_pipe *pipe_hw; struct dpu_hw_pipe *pipe_hw;
struct dpu_hw_pipe_cfg pipe_cfg; struct dpu_hw_pipe_cfg pipe_cfg;
struct dpu_hw_pipe_qos_cfg pipe_qos_cfg;
uint32_t color_fill; uint32_t color_fill;
bool is_error; bool is_error;
bool is_rt_pipe; bool is_rt_pipe;
...@@ -422,38 +421,41 @@ static void _dpu_plane_set_qos_ctrl(struct drm_plane *plane, ...@@ -422,38 +421,41 @@ static void _dpu_plane_set_qos_ctrl(struct drm_plane *plane,
bool enable, u32 flags) bool enable, u32 flags)
{ {
struct dpu_plane *pdpu = to_dpu_plane(plane); struct dpu_plane *pdpu = to_dpu_plane(plane);
struct dpu_hw_pipe_qos_cfg pipe_qos_cfg;
memset(&pipe_qos_cfg, 0, sizeof(pipe_qos_cfg));
if (flags & DPU_PLANE_QOS_VBLANK_CTRL) { if (flags & DPU_PLANE_QOS_VBLANK_CTRL) {
pdpu->pipe_qos_cfg.creq_vblank = pdpu->pipe_sblk->creq_vblank; pipe_qos_cfg.creq_vblank = pdpu->pipe_sblk->creq_vblank;
pdpu->pipe_qos_cfg.danger_vblank = pipe_qos_cfg.danger_vblank =
pdpu->pipe_sblk->danger_vblank; pdpu->pipe_sblk->danger_vblank;
pdpu->pipe_qos_cfg.vblank_en = enable; pipe_qos_cfg.vblank_en = enable;
} }
if (flags & DPU_PLANE_QOS_VBLANK_AMORTIZE) { if (flags & DPU_PLANE_QOS_VBLANK_AMORTIZE) {
/* this feature overrules previous VBLANK_CTRL */ /* this feature overrules previous VBLANK_CTRL */
pdpu->pipe_qos_cfg.vblank_en = false; pipe_qos_cfg.vblank_en = false;
pdpu->pipe_qos_cfg.creq_vblank = 0; /* clear vblank bits */ pipe_qos_cfg.creq_vblank = 0; /* clear vblank bits */
} }
if (flags & DPU_PLANE_QOS_PANIC_CTRL) if (flags & DPU_PLANE_QOS_PANIC_CTRL)
pdpu->pipe_qos_cfg.danger_safe_en = enable; pipe_qos_cfg.danger_safe_en = enable;
if (!pdpu->is_rt_pipe) { if (!pdpu->is_rt_pipe) {
pdpu->pipe_qos_cfg.vblank_en = false; pipe_qos_cfg.vblank_en = false;
pdpu->pipe_qos_cfg.danger_safe_en = false; pipe_qos_cfg.danger_safe_en = false;
} }
DPU_DEBUG_PLANE(pdpu, "pnum:%d ds:%d vb:%d pri[0x%x, 0x%x] is_rt:%d\n", DPU_DEBUG_PLANE(pdpu, "pnum:%d ds:%d vb:%d pri[0x%x, 0x%x] is_rt:%d\n",
pdpu->pipe - SSPP_VIG0, pdpu->pipe - SSPP_VIG0,
pdpu->pipe_qos_cfg.danger_safe_en, pipe_qos_cfg.danger_safe_en,
pdpu->pipe_qos_cfg.vblank_en, pipe_qos_cfg.vblank_en,
pdpu->pipe_qos_cfg.creq_vblank, pipe_qos_cfg.creq_vblank,
pdpu->pipe_qos_cfg.danger_vblank, pipe_qos_cfg.danger_vblank,
pdpu->is_rt_pipe); pdpu->is_rt_pipe);
pdpu->pipe_hw->ops.setup_qos_ctrl(pdpu->pipe_hw, pdpu->pipe_hw->ops.setup_qos_ctrl(pdpu->pipe_hw,
&pdpu->pipe_qos_cfg); &pipe_qos_cfg);
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment