aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
diff options
context:
space:
mode:
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>2021-12-02 01:26:33 +0300
committerRob Clark <robdclark@chromium.org>2021-12-16 09:51:25 -0800
commit2672e4e71a9183b81c20d19ab460f6159dd5119a (patch)
tree2e8da38efd0bde17d1d409e9a9430f85464c452f /drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
parentdrm/msm/dp: remove unneeded variable (diff)
downloadlinux-dev-2672e4e71a9183b81c20d19ab460f6159dd5119a.tar.xz
linux-dev-2672e4e71a9183b81c20d19ab460f6159dd5119a.zip
drm/msm/dpu: move SSPP debugfs support from plane to SSPP code
We are preparing to change DPU plane implementation. Move SSPP debugfs code from dpu_plane.c to dpu_hw_sspp.c, where it belongs. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com> Link: https://lore.kernel.org/r/20211201222633.2476780-9-dmitry.baryshkov@linaro.org Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Signed-off-by: Rob Clark <robdclark@chromium.org>
Diffstat (limited to 'drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c')
-rw-r--r--drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c82
1 files changed, 12 insertions, 70 deletions
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
index beeea423d674..ca75089c9d61 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
@@ -13,7 +13,6 @@
#include <drm/drm_atomic.h>
#include <drm/drm_atomic_uapi.h>
#include <drm/drm_damage_helper.h>
-#include <drm/drm_file.h>
#include <drm/drm_gem_atomic_helper.h>
#include "msm_drv.h"
@@ -1388,78 +1387,22 @@ void dpu_plane_danger_signal_ctrl(struct drm_plane *plane, bool enable)
pm_runtime_put_sync(&dpu_kms->pdev->dev);
}
-static int _dpu_plane_init_debugfs(struct drm_plane *plane)
+/* SSPP live inside dpu_plane private data only. Enumerate them here. */
+void dpu_debugfs_sspp_init(struct dpu_kms *dpu_kms, struct dentry *debugfs_root)
{
- struct dpu_plane *pdpu = to_dpu_plane(plane);
- struct dpu_kms *kms = _dpu_plane_get_kms(plane);
- const struct dpu_sspp_cfg *cfg = pdpu->pipe_hw->cap;
- const struct dpu_sspp_sub_blks *sblk = cfg->sblk;
- struct dentry *debugfs_root;
-
- /* create overall sub-directory for the pipe */
- debugfs_root =
- debugfs_create_dir(plane->name,
- plane->dev->primary->debugfs_root);
-
- /* don't error check these */
- debugfs_create_xul("features", 0600,
- debugfs_root, (unsigned long *)&pdpu->pipe_hw->cap->features);
-
- /* add register dump support */
- dpu_debugfs_create_regset32("src_blk", 0400,
- debugfs_root,
- sblk->src_blk.base + cfg->base,
- sblk->src_blk.len,
- kms);
-
- if (cfg->features & BIT(DPU_SSPP_SCALER_QSEED3) ||
- cfg->features & BIT(DPU_SSPP_SCALER_QSEED3LITE) ||
- cfg->features & BIT(DPU_SSPP_SCALER_QSEED2) ||
- cfg->features & BIT(DPU_SSPP_SCALER_QSEED4))
- dpu_debugfs_create_regset32("scaler_blk", 0400,
- debugfs_root,
- sblk->scaler_blk.base + cfg->base,
- sblk->scaler_blk.len,
- kms);
-
- if (cfg->features & BIT(DPU_SSPP_CSC) ||
- cfg->features & BIT(DPU_SSPP_CSC_10BIT))
- dpu_debugfs_create_regset32("csc_blk", 0400,
- debugfs_root,
- sblk->csc_blk.base + cfg->base,
- sblk->csc_blk.len,
- kms);
-
- debugfs_create_u32("xin_id",
- 0400,
- debugfs_root,
- (u32 *) &cfg->xin_id);
- debugfs_create_u32("clk_ctrl",
- 0400,
- debugfs_root,
- (u32 *) &cfg->clk_ctrl);
- debugfs_create_x32("creq_vblank",
- 0600,
- debugfs_root,
- (u32 *) &sblk->creq_vblank);
- debugfs_create_x32("danger_vblank",
- 0600,
- debugfs_root,
- (u32 *) &sblk->danger_vblank);
+ struct drm_plane *plane;
+ struct dentry *entry = debugfs_create_dir("sspp", debugfs_root);
- return 0;
-}
-#else
-static int _dpu_plane_init_debugfs(struct drm_plane *plane)
-{
- return 0;
-}
-#endif
+ if (IS_ERR(entry))
+ return;
-static int dpu_plane_late_register(struct drm_plane *plane)
-{
- return _dpu_plane_init_debugfs(plane);
+ drm_for_each_plane(plane, dpu_kms->dev) {
+ struct dpu_plane *pdpu = to_dpu_plane(plane);
+
+ _dpu_hw_sspp_init_debugfs(pdpu->pipe_hw, dpu_kms, entry);
+ }
}
+#endif
static bool dpu_plane_format_mod_supported(struct drm_plane *plane,
uint32_t format, uint64_t modifier)
@@ -1486,7 +1429,6 @@ static const struct drm_plane_funcs dpu_plane_funcs = {
.atomic_duplicate_state = dpu_plane_duplicate_state,
.atomic_destroy_state = dpu_plane_destroy_state,
.atomic_print_state = dpu_plane_atomic_print_state,
- .late_register = dpu_plane_late_register,
.format_mod_supported = dpu_plane_format_mod_supported,
};