On 12/1/2021 2:26 PM, Dmitry Baryshkov wrote:
Squash dpu_debugfs_setup_regset32() into dpu_debugfs_create_regset32().
it makes little sense to have separate function to just setup the
structure.

Signed-off-by: Dmitry Baryshkov <dmitry.barysh...@linaro.org>
Reviewed-by: Abhinav Kumar <quic_abhin...@quicinc.com>
---
  drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c   | 32 ++++++++++++-------
  drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h   | 38 +++--------------------
  drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c | 27 +++++-----------
  3 files changed, 33 insertions(+), 64 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
index 4c04982c71b2..7e7a619769a8 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
@@ -182,6 +182,15 @@ static void dpu_debugfs_danger_init(struct dpu_kms 
*dpu_kms,
} +/*
+ * Companion structure for dpu_debugfs_create_regset32.
+ */
+struct dpu_debugfs_regset32 {
+       uint32_t offset;
+       uint32_t blk_len;
+       struct dpu_kms *dpu_kms;
+};
+
  static int _dpu_debugfs_show_regset32(struct seq_file *s, void *data)
  {
        struct dpu_debugfs_regset32 *regset = s->private;
@@ -229,24 +238,23 @@ static const struct file_operations dpu_fops_regset32 = {
        .release =      single_release,
  };
-void dpu_debugfs_setup_regset32(struct dpu_debugfs_regset32 *regset,
+void dpu_debugfs_create_regset32(const char *name, umode_t mode,
+               void *parent,
                uint32_t offset, uint32_t length, struct dpu_kms *dpu_kms)
  {
-       if (regset) {
-               regset->offset = offset;
-               regset->blk_len = length;
-               regset->dpu_kms = dpu_kms;
-       }
-}
+       struct dpu_debugfs_regset32 *regset;
-void dpu_debugfs_create_regset32(const char *name, umode_t mode,
-               void *parent, struct dpu_debugfs_regset32 *regset)
-{
-       if (!name || !regset || !regset->dpu_kms || !regset->blk_len)
+       if (WARN_ON(!name || !dpu_kms || !length))
+               return;
+
+       regset = devm_kzalloc(&dpu_kms->pdev->dev, sizeof(*regset), GFP_KERNEL);
+       if (!regset)
                return;
/* make sure offset is a multiple of 4 */
-       regset->offset = round_down(regset->offset, 4);
+       regset->offset = round_down(offset, 4);
+       regset->blk_len = length;
+       regset->dpu_kms = dpu_kms;
debugfs_create_file(name, mode, parent, regset, &dpu_fops_regset32);
  }
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h
index 775bcbda860f..b53cdeb1b5c4 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h
@@ -160,33 +160,9 @@ struct dpu_global_state
   *
   * Documentation/filesystems/debugfs.rst
   *
- * @dpu_debugfs_setup_regset32: Initialize data for dpu_debugfs_create_regset32
   * @dpu_debugfs_create_regset32: Create 32-bit register dump file
- * @dpu_debugfs_get_root: Get root dentry for DPU_KMS's debugfs node
   */
-/**
- * Companion structure for dpu_debugfs_create_regset32. Do not initialize the
- * members of this structure explicitly; use dpu_debugfs_setup_regset32 
instead.
- */
-struct dpu_debugfs_regset32 {
-       uint32_t offset;
-       uint32_t blk_len;
-       struct dpu_kms *dpu_kms;
-};
-
-/**
- * dpu_debugfs_setup_regset32 - Initialize register block definition for 
debugfs
- * This function is meant to initialize dpu_debugfs_regset32 structures for use
- * with dpu_debugfs_create_regset32.
- * @regset: opaque register definition structure
- * @offset: sub-block offset
- * @length: sub-block length, in bytes
- * @dpu_kms: pointer to dpu kms structure
- */
-void dpu_debugfs_setup_regset32(struct dpu_debugfs_regset32 *regset,
-               uint32_t offset, uint32_t length, struct dpu_kms *dpu_kms);
-
  /**
   * dpu_debugfs_create_regset32 - Create register read back file for debugfs
   *
@@ -195,20 +171,16 @@ void dpu_debugfs_setup_regset32(struct 
dpu_debugfs_regset32 *regset,
   * names/offsets do not need to be provided. The 'read' function simply 
outputs
   * sequential register values over a specified range.
   *
- * Similar to the related debugfs_create_regset32 API, the structure pointed to
- * by regset needs to persist for the lifetime of the created file. The calling
- * code is responsible for initialization/management of this structure.
- *
- * The structure pointed to by regset is meant to be opaque. Please use
- * dpu_debugfs_setup_regset32 to initialize it.
- *
   * @name:   File name within debugfs
   * @mode:   File mode within debugfs
   * @parent: Parent directory entry within debugfs, can be NULL
- * @regset: Pointer to persistent register block definition
+ * @offset: sub-block offset
+ * @length: sub-block length, in bytes
+ * @dpu_kms: pointer to dpu kms structure
   */
  void dpu_debugfs_create_regset32(const char *name, umode_t mode,
-               void *parent, struct dpu_debugfs_regset32 *regset);
+               void *parent,
+               uint32_t offset, uint32_t length, struct dpu_kms *dpu_kms);
/**
   * dpu_debugfs_get_root - Return root directory entry for KMS's debugfs
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c 
b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
index d3176f58708e..ef66af696a40 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
@@ -108,11 +108,6 @@ struct dpu_plane {
        bool is_virtual;
        struct list_head mplane_list;
        struct dpu_mdss_cfg *catalog;
-
-       /* debugfs related stuff */
-       struct dpu_debugfs_regset32 debugfs_src;
-       struct dpu_debugfs_regset32 debugfs_scaler;
-       struct dpu_debugfs_regset32 debugfs_csc;
  };
static const uint64_t supported_format_modifiers[] = {
@@ -1379,35 +1374,29 @@ static int _dpu_plane_init_debugfs(struct drm_plane 
*plane)
                        debugfs_root, (unsigned long 
*)&pdpu->pipe_hw->cap->features);
/* add register dump support */
-       dpu_debugfs_setup_regset32(&pdpu->debugfs_src,
+       dpu_debugfs_create_regset32("src_blk", 0400,
+                       debugfs_root,
                        sblk->src_blk.base + cfg->base,
                        sblk->src_blk.len,
                        kms);
-       dpu_debugfs_create_regset32("src_blk", 0400,
-                       debugfs_root, &pdpu->debugfs_src);
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_setup_regset32(&pdpu->debugfs_scaler,
+                       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);
-               dpu_debugfs_create_regset32("scaler_blk", 0400,
-                               debugfs_root,
-                               &pdpu->debugfs_scaler);
-       }
if (cfg->features & BIT(DPU_SSPP_CSC) ||
-                       cfg->features & BIT(DPU_SSPP_CSC_10BIT)) {
-               dpu_debugfs_setup_regset32(&pdpu->debugfs_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);
-               dpu_debugfs_create_regset32("csc_blk", 0400,
-                               debugfs_root, &pdpu->debugfs_csc);
-       }
debugfs_create_u32("xin_id",
                        0400,

Reply via email to