Commit 701a21ec authored by Dmitry Baryshkov's avatar Dmitry Baryshkov Committed by Rob Clark

drm/msm/dpu: don't cache pipe->cap->features in dpu_plane

Do not cache hw_pipe's features in dpu_plane. Use
pdpu->pipe_hw->cap->features directly.
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-10-dmitry.baryshkov@linaro.orgSigned-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
parent 51cb5808
...@@ -100,7 +100,6 @@ struct dpu_plane { ...@@ -100,7 +100,6 @@ struct dpu_plane {
struct mutex lock; struct mutex lock;
enum dpu_sspp pipe; enum dpu_sspp pipe;
uint32_t features; /* capabilities from catalog */
struct dpu_hw_pipe *pipe_hw; struct dpu_hw_pipe *pipe_hw;
uint32_t color_fill; uint32_t color_fill;
...@@ -646,7 +645,7 @@ static const struct dpu_csc_cfg *_dpu_plane_get_csc(struct dpu_plane *pdpu, cons ...@@ -646,7 +645,7 @@ static const struct dpu_csc_cfg *_dpu_plane_get_csc(struct dpu_plane *pdpu, cons
if (!DPU_FORMAT_IS_YUV(fmt)) if (!DPU_FORMAT_IS_YUV(fmt))
return NULL; return NULL;
if (BIT(DPU_SSPP_CSC_10BIT) & pdpu->features) if (BIT(DPU_SSPP_CSC_10BIT) & pdpu->pipe_hw->cap->features)
csc_ptr = &dpu_csc10_YUV2RGB_601L; csc_ptr = &dpu_csc10_YUV2RGB_601L;
else else
csc_ptr = &dpu_csc_YUV2RGB_601L; csc_ptr = &dpu_csc_YUV2RGB_601L;
...@@ -1003,8 +1002,8 @@ static int dpu_plane_atomic_check(struct drm_plane *plane, ...@@ -1003,8 +1002,8 @@ static int dpu_plane_atomic_check(struct drm_plane *plane,
min_src_size = DPU_FORMAT_IS_YUV(fmt) ? 2 : 1; min_src_size = DPU_FORMAT_IS_YUV(fmt) ? 2 : 1;
if (DPU_FORMAT_IS_YUV(fmt) && if (DPU_FORMAT_IS_YUV(fmt) &&
(!(pdpu->features & DPU_SSPP_SCALER) || (!(pdpu->pipe_hw->cap->features & DPU_SSPP_SCALER) ||
!(pdpu->features & (BIT(DPU_SSPP_CSC) !(pdpu->pipe_hw->cap->features & (BIT(DPU_SSPP_CSC)
| BIT(DPU_SSPP_CSC_10BIT))))) { | BIT(DPU_SSPP_CSC_10BIT))))) {
DPU_DEBUG_PLANE(pdpu, DPU_DEBUG_PLANE(pdpu,
"plane doesn't have scaler/csc for yuv\n"); "plane doesn't have scaler/csc for yuv\n");
...@@ -1446,8 +1445,8 @@ static int _dpu_plane_init_debugfs(struct drm_plane *plane) ...@@ -1446,8 +1445,8 @@ static int _dpu_plane_init_debugfs(struct drm_plane *plane)
plane->dev->primary->debugfs_root); plane->dev->primary->debugfs_root);
/* don't error check these */ /* don't error check these */
debugfs_create_x32("features", 0600, debugfs_create_xul("features", 0600,
pdpu->debugfs_root, &pdpu->features); pdpu->debugfs_root, (unsigned long *)&pdpu->pipe_hw->cap->features);
/* add register dump support */ /* add register dump support */
dpu_debugfs_setup_regset32(&pdpu->debugfs_src, dpu_debugfs_setup_regset32(&pdpu->debugfs_src,
...@@ -1620,7 +1619,6 @@ struct drm_plane *dpu_plane_init(struct drm_device *dev, ...@@ -1620,7 +1619,6 @@ struct drm_plane *dpu_plane_init(struct drm_device *dev,
} }
/* cache features mask for later */ /* cache features mask for later */
pdpu->features = pdpu->pipe_hw->cap->features;
pdpu->pipe_sblk = pdpu->pipe_hw->cap->sblk; pdpu->pipe_sblk = pdpu->pipe_hw->cap->sblk;
if (!pdpu->pipe_sblk) { if (!pdpu->pipe_sblk) {
DPU_ERROR("[%u]invalid sblk\n", pipe); DPU_ERROR("[%u]invalid sblk\n", pipe);
......
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