drm/msm/dpu: constify struct dpu_mdss_cfg
authorDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Thu, 2 Jun 2022 20:24:46 +0000 (23:24 +0300)
committerDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Mon, 4 Jul 2022 18:05:27 +0000 (21:05 +0300)
Mark struct dpu_mdss_cfg instance as a const pointer. This is mostly a
preparation for the next patch.

Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/488164/
Link: https://lore.kernel.org/r/20220602202447.1755115-7-dmitry.baryshkov@linaro.org
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
17 files changed:
drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.c
drivers/gpu/drm/msm/disp/dpu1/dpu_core_perf.h
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder_phys_wb.c
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.h
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.c
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_dsc.h
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.c
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_interrupts.h
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.c
drivers/gpu/drm/msm/disp/dpu1/dpu_hw_sspp.h
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.c
drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h
drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c
drivers/gpu/drm/msm/disp/dpu1/dpu_rm.c
drivers/gpu/drm/msm/disp/dpu1/dpu_rm.h

index 31767d0f73537cd63970ba45ebebf2e0acaf2d18..1d9d83d7b99eda62aec0e865c6cda78a10c6fbf8 100644 (file)
@@ -468,7 +468,7 @@ static const struct file_operations dpu_core_perf_mode_fops = {
 int dpu_core_perf_debugfs_init(struct dpu_kms *dpu_kms, struct dentry *parent)
 {
        struct dpu_core_perf *perf = &dpu_kms->perf;
-       struct dpu_mdss_cfg *catalog = perf->catalog;
+       const struct dpu_mdss_cfg *catalog = perf->catalog;
        struct dentry *entry;
 
        entry = debugfs_create_dir("core_perf", parent);
@@ -517,7 +517,7 @@ void dpu_core_perf_destroy(struct dpu_core_perf *perf)
 
 int dpu_core_perf_init(struct dpu_core_perf *perf,
                struct drm_device *dev,
-               struct dpu_mdss_cfg *catalog,
+               const struct dpu_mdss_cfg *catalog,
                struct clk *core_clk)
 {
        perf->dev = dev;
index 8dfcc6db717660432690c6bfa385ff0bf28fc49d..e3795995e1454a6c232a782a5d8e15c5533540ac 100644 (file)
@@ -68,7 +68,7 @@ struct dpu_core_perf_tune {
 struct dpu_core_perf {
        struct drm_device *dev;
        struct dentry *debugfs_root;
-       struct dpu_mdss_cfg *catalog;
+       const struct dpu_mdss_cfg *catalog;
        struct clk *core_clk;
        u64 core_clk_rate;
        u64 max_core_clk_rate;
@@ -119,7 +119,7 @@ void dpu_core_perf_destroy(struct dpu_core_perf *perf);
  */
 int dpu_core_perf_init(struct dpu_core_perf *perf,
                struct drm_device *dev,
-               struct dpu_mdss_cfg *catalog,
+               const struct dpu_mdss_cfg *catalog,
                struct clk *core_clk);
 
 struct dpu_kms;
index a1b8c4592943722d2686c3152a0bc3f8ee962aed..5e88ddd0f4fe51f71abb6d81d076d8a7a6974985 100644 (file)
@@ -1205,7 +1205,7 @@ static void dpu_encoder_virt_disable(struct drm_encoder *drm_enc)
        mutex_unlock(&dpu_enc->enc_lock);
 }
 
-static enum dpu_intf dpu_encoder_get_intf(struct dpu_mdss_cfg *catalog,
+static enum dpu_intf dpu_encoder_get_intf(const struct dpu_mdss_cfg *catalog,
                enum dpu_intf_type type, u32 controller_id)
 {
        int i = 0;
@@ -1222,7 +1222,7 @@ static enum dpu_intf dpu_encoder_get_intf(struct dpu_mdss_cfg *catalog,
        return INTF_MAX;
 }
 
-static enum dpu_wb dpu_encoder_get_wb(struct dpu_mdss_cfg *catalog,
+static enum dpu_wb dpu_encoder_get_wb(const struct dpu_mdss_cfg *catalog,
                enum dpu_intf_type type, u32 controller_id)
 {
        int i = 0;
index 0793ab213670d59c0cbb00939685f8a714483c0e..2ba9e64445b4cadb9591bd0127455da110899bcc 100644 (file)
@@ -103,7 +103,7 @@ static void dpu_encoder_phys_wb_set_qos(struct dpu_encoder_phys *phys_enc)
 {
        struct dpu_hw_wb *hw_wb;
        struct dpu_hw_wb_qos_cfg qos_cfg;
-       struct dpu_mdss_cfg *catalog;
+       const struct dpu_mdss_cfg *catalog;
        const struct dpu_qos_lut_tbl *qos_lut_tb;
 
        if (!phys_enc || !phys_enc->dpu_kms || !phys_enc->dpu_kms->catalog) {
index 0578e0c560d34779ed46983da94cd400d55668a9..535337a9e74fc13e7177e87dd3ac911b29bbee0e 100644 (file)
@@ -1987,17 +1987,12 @@ static const struct dpu_mdss_hw_cfg_handler cfg_handler[] = {
        { .hw_rev = DPU_HW_VER_720, .cfg_init = sc7280_cfg_init},
 };
 
-void dpu_hw_catalog_deinit(struct dpu_mdss_cfg *dpu_cfg)
-{
-       kfree(dpu_cfg);
-}
-
-struct dpu_mdss_cfg *dpu_hw_catalog_init(u32 hw_rev)
+const struct dpu_mdss_cfg *dpu_hw_catalog_init(struct device *dev, u32 hw_rev)
 {
        int i;
        struct dpu_mdss_cfg *dpu_cfg;
 
-       dpu_cfg = kzalloc(sizeof(*dpu_cfg), GFP_KERNEL);
+       dpu_cfg = devm_kzalloc(dev, sizeof(*dpu_cfg), GFP_KERNEL);
        if (!dpu_cfg)
                return ERR_PTR(-ENOMEM);
 
@@ -2009,7 +2004,7 @@ struct dpu_mdss_cfg *dpu_hw_catalog_init(u32 hw_rev)
        }
 
        DPU_ERROR("unsupported chipset id:%X\n", hw_rev);
-       dpu_hw_catalog_deinit(dpu_cfg);
+
        return ERR_PTR(-ENODEV);
 }
 
index 60b403ac9f0fa3325cab251789a080502639c274..c317fa27daa0992c07f1c0b31610e1212a4fe405 100644 (file)
@@ -884,16 +884,11 @@ struct dpu_mdss_hw_cfg_handler {
 /**
  * dpu_hw_catalog_init - dpu hardware catalog init API retrieves
  * hardcoded target specific catalog information in config structure
+ * @dev:          DPU device
  * @hw_rev:       caller needs provide the hardware revision.
  *
  * Return: dpu config structure
  */
-struct dpu_mdss_cfg *dpu_hw_catalog_init(u32 hw_rev);
-
-/**
- * dpu_hw_catalog_deinit - dpu hardware catalog cleanup
- * @dpu_cfg:      pointer returned from init function
- */
-void dpu_hw_catalog_deinit(struct dpu_mdss_cfg *dpu_cfg);
+const struct dpu_mdss_cfg *dpu_hw_catalog_init(struct device *dev, u32 hw_rev);
 
 #endif /* _DPU_HW_CATALOG_H */
index 6f20d6b6dddd0f651e2b1d66e1442c48a3271364..184a1b27b13d5e3983196bda2e38e0f1b656133f 100644 (file)
@@ -158,7 +158,7 @@ static void dpu_hw_dsc_config_thresh(struct dpu_hw_dsc *hw_dsc,
 }
 
 static struct dpu_dsc_cfg *_dsc_offset(enum dpu_dsc dsc,
-                                      struct dpu_mdss_cfg *m,
+                                      const struct dpu_mdss_cfg *m,
                                       void __iomem *addr,
                                       struct dpu_hw_blk_reg_map *b)
 {
@@ -186,7 +186,7 @@ static void _setup_dsc_ops(struct dpu_hw_dsc_ops *ops,
 };
 
 struct dpu_hw_dsc *dpu_hw_dsc_init(enum dpu_dsc idx, void __iomem *addr,
-                                  struct dpu_mdss_cfg *m)
+                                  const struct dpu_mdss_cfg *m)
 {
        struct dpu_hw_dsc *c;
        struct dpu_dsc_cfg *cfg;
index b39ee4ed32f74391aa5bb69a1987ed49ae537ae0..45e4118f1fa276ca97dffc20487d33d878efb719 100644 (file)
@@ -64,7 +64,7 @@ struct dpu_hw_dsc {
  * Returns: Error code or allocated dpu_hw_dsc context
  */
 struct dpu_hw_dsc *dpu_hw_dsc_init(enum dpu_dsc idx, void __iomem *addr,
-                                  struct dpu_mdss_cfg *m);
+                                  const struct dpu_mdss_cfg *m);
 
 /**
  * dpu_hw_dsc_destroy - destroys dsc driver context
index 01bb2d84c3a0557fd818abacd8b48538934db42f..d83503ea2419a27cdb0871a1a2edbbf5aaa7dc05 100644 (file)
@@ -398,7 +398,7 @@ u32 dpu_core_irq_read(struct dpu_kms *dpu_kms, int irq_idx)
        return intr_status;
 }
 
-static void __intr_offset(struct dpu_mdss_cfg *m,
+static void __intr_offset(const struct dpu_mdss_cfg *m,
                void __iomem *addr, struct dpu_hw_blk_reg_map *hw)
 {
        hw->base_off = addr;
@@ -406,7 +406,7 @@ static void __intr_offset(struct dpu_mdss_cfg *m,
 }
 
 struct dpu_hw_intr *dpu_hw_intr_init(void __iomem *addr,
-               struct dpu_mdss_cfg *m)
+               const struct dpu_mdss_cfg *m)
 {
        struct dpu_hw_intr *intr;
        int nirq = MDP_INTR_MAX * 32;
index 4154c5e2b4ae6c726ef3abdad2a5d276f78eb312..46443955443c48108d2ebff3b9048fe9725987e8 100644 (file)
@@ -67,7 +67,7 @@ struct dpu_hw_intr {
  * @m :   pointer to mdss catalog data
  */
 struct dpu_hw_intr *dpu_hw_intr_init(void __iomem *addr,
-               struct dpu_mdss_cfg *m);
+               const struct dpu_mdss_cfg *m);
 
 /**
  * dpu_hw_intr_destroy(): Cleanup interrutps hw object
index ab7f1a4cc578fadb1365a8d91e0dff1124791ce0..da4c7e4f304b46b535366a2e89dd1ecf4935ef35 100644 (file)
@@ -761,7 +761,7 @@ int _dpu_hw_sspp_init_debugfs(struct dpu_hw_pipe *hw_pipe, struct dpu_kms *kms,
 
 static const struct dpu_sspp_cfg *_sspp_offset(enum dpu_sspp sspp,
                void __iomem *addr,
-               struct dpu_mdss_cfg *catalog,
+               const struct dpu_mdss_cfg *catalog,
                struct dpu_hw_blk_reg_map *b)
 {
        int i;
@@ -782,7 +782,7 @@ static const struct dpu_sspp_cfg *_sspp_offset(enum dpu_sspp sspp,
 }
 
 struct dpu_hw_pipe *dpu_hw_sspp_init(enum dpu_sspp idx,
-               void __iomem *addr, struct dpu_mdss_cfg *catalog,
+               void __iomem *addr, const struct dpu_mdss_cfg *catalog,
                bool is_virtual_pipe)
 {
        struct dpu_hw_pipe *hw_pipe;
index a81e16657d6151e59723f7f2f9ab5eb4ae3a46d9..7f7338fcddeb68ceec7cb83032793620fab7f340 100644 (file)
@@ -360,7 +360,7 @@ struct dpu_hw_sspp_ops {
 struct dpu_hw_pipe {
        struct dpu_hw_blk base;
        struct dpu_hw_blk_reg_map hw;
-       struct dpu_mdss_cfg *catalog;
+       const struct dpu_mdss_cfg *catalog;
        const struct dpu_mdp_cfg *mdp;
 
        /* Pipe */
@@ -381,7 +381,7 @@ struct dpu_kms;
  * @is_virtual_pipe: is this pipe virtual pipe
  */
 struct dpu_hw_pipe *dpu_hw_sspp_init(enum dpu_sspp idx,
-               void __iomem *addr, struct dpu_mdss_cfg *catalog,
+               void __iomem *addr, const struct dpu_mdss_cfg *catalog,
                bool is_virtual_pipe);
 
 /**
index e23e2552e8020abee16af48848ef9e41515c6fa6..324f01b92433494927ac617b0db5341afecb19fb 100644 (file)
@@ -745,7 +745,7 @@ static int _dpu_kms_drm_obj_init(struct dpu_kms *dpu_kms)
        unsigned int num_encoders;
 
        struct msm_drm_private *priv;
-       struct dpu_mdss_cfg *catalog;
+       const struct dpu_mdss_cfg *catalog;
 
        int primary_planes_idx = 0, cursor_planes_idx = 0, i, ret;
        int max_crtc_count;
@@ -842,8 +842,6 @@ static void _dpu_kms_hw_destroy(struct dpu_kms *dpu_kms)
                dpu_rm_destroy(&dpu_kms->rm);
        dpu_kms->rm_init = false;
 
-       if (dpu_kms->catalog)
-               dpu_hw_catalog_deinit(dpu_kms->catalog);
        dpu_kms->catalog = NULL;
 
        if (dpu_kms->vbif[VBIF_NRT])
@@ -905,7 +903,7 @@ static void dpu_kms_mdp_snapshot(struct msm_disp_state *disp_state, struct msm_k
 {
        int i;
        struct dpu_kms *dpu_kms;
-       struct dpu_mdss_cfg *cat;
+       const struct dpu_mdss_cfg *cat;
        struct dpu_hw_mdp *top;
 
        dpu_kms = to_dpu_kms(kms);
@@ -1095,7 +1093,7 @@ static int dpu_kms_hw_init(struct msm_kms *kms)
 
        pr_info("dpu hardware revision:0x%x\n", dpu_kms->core_rev);
 
-       dpu_kms->catalog = dpu_hw_catalog_init(dpu_kms->core_rev);
+       dpu_kms->catalog = dpu_hw_catalog_init(dev->dev, dpu_kms->core_rev);
        if (IS_ERR_OR_NULL(dpu_kms->catalog)) {
                rc = PTR_ERR(dpu_kms->catalog);
                if (!dpu_kms->catalog)
index 832a0769f2e77f5375e496c981e92ca7a9f75c6e..ed80ed6784eee73089143cefd1d1a29e17d5d21d 100644 (file)
@@ -69,7 +69,7 @@ struct dpu_kms {
        struct msm_kms base;
        struct drm_device *dev;
        int core_rev;
-       struct dpu_mdss_cfg *catalog;
+       const struct dpu_mdss_cfg *catalog;
 
        /* io/register spaces: */
        void __iomem *mmio, *vbif[VBIF_MAX], *reg_dma;
index b887f45596f3c104f762214496c6deb4e58975cb..7899418c5ca341f4bb75d04c7137dcaccc4f8f76 100644 (file)
@@ -106,7 +106,7 @@ struct dpu_plane {
        bool is_rt_pipe;
        bool is_virtual;
        struct list_head mplane_list;
-       struct dpu_mdss_cfg *catalog;
+       const struct dpu_mdss_cfg *catalog;
 };
 
 static const uint64_t supported_format_modifiers[] = {
index 06f03e7081bc702d0e8883719b8281c841dfc7f0..73b3442e74679169463a174e07b3385fa18f44b7 100644 (file)
@@ -95,7 +95,7 @@ int dpu_rm_destroy(struct dpu_rm *rm)
 }
 
 int dpu_rm_init(struct dpu_rm *rm,
-               struct dpu_mdss_cfg *cat,
+               const struct dpu_mdss_cfg *cat,
                void __iomem *mmio)
 {
        int rc, i;
index 2f34a31d8d0df0bf33957b0cc83398802cb3d67b..59de72b381f96a43f8f88548794c74ab7b9d77b2 100644 (file)
@@ -42,7 +42,7 @@ struct dpu_rm {
  * @Return: 0 on Success otherwise -ERROR
  */
 int dpu_rm_init(struct dpu_rm *rm,
-               struct dpu_mdss_cfg *cat,
+               const struct dpu_mdss_cfg *cat,
                void __iomem *mmio);
 
 /**