Hi,

On Fri, Oct 13, 2017 at 05:59:43PM +0300, Laurent Pinchart wrote:
> As part of an effort to remove the usage of global variables in the
> driver, store the debugfs root directory in the dss_device structure
> instead of a global variable.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
> ---
>  drivers/gpu/drm/omapdrm/dss/dispc.c |  2 +-
>  drivers/gpu/drm/omapdrm/dss/dsi.c   |  8 ++++----
>  drivers/gpu/drm/omapdrm/dss/dss.c   | 39 
> +++++++++++++++++++------------------
>  drivers/gpu/drm/omapdrm/dss/dss.h   |  9 ++++++---
>  drivers/gpu/drm/omapdrm/dss/hdmi4.c |  3 ++-
>  drivers/gpu/drm/omapdrm/dss/hdmi5.c |  3 ++-
>  drivers/gpu/drm/omapdrm/dss/venc.c  |  3 ++-
>  7 files changed, 37 insertions(+), 30 deletions(-)
> 
> diff --git a/drivers/gpu/drm/omapdrm/dss/dispc.c 
> b/drivers/gpu/drm/omapdrm/dss/dispc.c
> index aaf7396f0273..5eacf4cdac54 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dispc.c
> +++ b/drivers/gpu/drm/omapdrm/dss/dispc.c
> @@ -4772,7 +4772,7 @@ static int dispc_bind(struct device *dev, struct device 
> *master, void *data)
>       dispc_set_ops(&dispc_ops);
>       dss->dispc = dispc;
>  
> -     dispc->debugfs = dss_debugfs_create_file("dispc", dispc_dump_regs,
> +     dispc->debugfs = dss_debugfs_create_file(dss, "dispc", dispc_dump_regs,
>                                                dispc);
>  
>       return 0;
> diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c 
> b/drivers/gpu/drm/omapdrm/dss/dsi.c
> index c7700dfccc08..48ea5285cf20 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dsi.c
> +++ b/drivers/gpu/drm/omapdrm/dss/dsi.c
> @@ -5453,20 +5453,20 @@ static int dsi_bind(struct device *dev, struct device 
> *master, void *data)
>       dsi_runtime_put(dsi);
>  
>       if (dsi->module_id == 0)
> -             dsi->debugfs.regs = dss_debugfs_create_file("dsi1_regs",
> +             dsi->debugfs.regs = dss_debugfs_create_file(dss, "dsi1_regs",
>                                                           dsi1_dump_regs,
>                                                           &dsi);
>       else
> -             dsi->debugfs.regs = dss_debugfs_create_file("dsi2_regs",
> +             dsi->debugfs.regs = dss_debugfs_create_file(dss, "dsi2_regs",
>                                                           dsi2_dump_regs,
>                                                           &dsi);
>  #ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS
>       if (dsi->module_id == 0)
> -             dsi->debugfs.irqs = dss_debugfs_create_file("dsi1_irqs",
> +             dsi->debugfs.irqs = dss_debugfs_create_file(dss, "dsi1_irqs",
>                                                           dsi1_dump_irqs,
>                                                           &dsi);
>       else
> -             dsi->debugfs.irqs = dss_debugfs_create_file("dsi2_irqs",
> +             dsi->debugfs.irqs = dss_debugfs_create_file(dss, "dsi2_irqs",
>                                                           dsi2_dump_irqs,
>                                                           &dsi);
>  #endif
> diff --git a/drivers/gpu/drm/omapdrm/dss/dss.c 
> b/drivers/gpu/drm/omapdrm/dss/dss.c
> index 5d927dfe0a7f..f4e15850cc9d 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dss.c
> +++ b/drivers/gpu/drm/omapdrm/dss/dss.c
> @@ -906,25 +906,23 @@ static int dss_debug_dump_clocks(struct seq_file *s, 
> void *p)
>       return 0;
>  }
>  
> -static struct dentry *dss_debugfs_dir;
> -
>  static int dss_initialize_debugfs(struct dss_device *dss)
>  {
> -     dss_debugfs_dir = debugfs_create_dir("omapdss", NULL);
> -     if (IS_ERR(dss_debugfs_dir)) {
> -             int err = PTR_ERR(dss_debugfs_dir);
> +     static struct dentry *dir;

static?

Otherwise:

Reviewed-by: Sebastian Reichel <sebastian.reic...@collabora.co.uk>

-- Sebastian

> -             dss_debugfs_dir = NULL;
> -             return err;
> -     }
> +     dir = debugfs_create_dir("omapdss", NULL);
> +     if (IS_ERR(dir))
> +             return PTR_ERR(dir);
> +
> +     dss->debugfs.root = dir;
>  
>       return 0;
>  }
>  
> -static void dss_uninitialize_debugfs(void)
> +static void dss_uninitialize_debugfs(struct dss_device *dss)
>  {
> -     if (dss_debugfs_dir)
> -             debugfs_remove_recursive(dss_debugfs_dir);
> +     if (dss->debugfs.root)
> +             debugfs_remove_recursive(dss->debugfs.root);
>  }
>  
>  struct dss_debugfs_entry {
> @@ -947,8 +945,10 @@ static const struct file_operations dss_debug_fops = {
>       .release        = single_release,
>  };
>  
> -struct dss_debugfs_entry *dss_debugfs_create_file(const char *name,
> -             int (*show_fn)(struct seq_file *s, void *data), void *data)
> +struct dss_debugfs_entry *
> +dss_debugfs_create_file(struct dss_device *dss, const char *name,
> +                     int (*show_fn)(struct seq_file *s, void *data),
> +                     void *data)
>  {
>       struct dss_debugfs_entry *entry;
>       struct dentry *d;
> @@ -960,7 +960,7 @@ struct dss_debugfs_entry *dss_debugfs_create_file(const 
> char *name,
>       entry->show_fn = show_fn;
>       entry->data = data;
>  
> -     d = debugfs_create_file(name, 0444, dss_debugfs_dir, entry,
> +     d = debugfs_create_file(name, 0444, dss->debugfs.root, entry,
>                               &dss_debug_fops);
>       if (IS_ERR(d)) {
>               kfree(entry);
> @@ -985,7 +985,7 @@ static inline int dss_initialize_debugfs(struct 
> dss_device *dss)
>  {
>       return 0;
>  }
> -static inline void dss_uninitialize_debugfs(void)
> +static inline void dss_uninitialize_debugfs(struct dss_device *dss)
>  {
>  }
>  #endif /* CONFIG_OMAP2_DSS_DEBUGFS */
> @@ -1382,9 +1382,10 @@ static int dss_bind(struct device *dev)
>       if (r)
>               goto err_component;
>  
> -     dss->debugfs.clk = dss_debugfs_create_file("clk", dss_debug_dump_clocks,
> +     dss->debugfs.clk = dss_debugfs_create_file(dss, "clk",
> +                                                dss_debug_dump_clocks, dss);
> +     dss->debugfs.dss = dss_debugfs_create_file(dss, "dss", dss_dump_regs,
>                                                  dss);
> -     dss->debugfs.dss = dss_debugfs_create_file("dss", dss_dump_regs, dss);
>  
>       pm_set_vt_switch(0);
>  
> @@ -1511,7 +1512,7 @@ static int dss_probe(struct platform_device *pdev)
>       return 0;
>  
>  err_debugfs:
> -     dss_uninitialize_debugfs();
> +     dss_uninitialize_debugfs(dss);
>  err_free_dss:
>       kfree(dss);
>       return r;
> @@ -1523,7 +1524,7 @@ static int dss_remove(struct platform_device *pdev)
>  
>       component_master_del(&pdev->dev, &dss_component_ops);
>  
> -     dss_uninitialize_debugfs();
> +     dss_uninitialize_debugfs(dss);
>       kfree(dss);
>  
>       return 0;
> diff --git a/drivers/gpu/drm/omapdrm/dss/dss.h 
> b/drivers/gpu/drm/omapdrm/dss/dss.h
> index ceba8441c7cc..76a2561dfd22 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dss.h
> +++ b/drivers/gpu/drm/omapdrm/dss/dss.h
> @@ -271,6 +271,7 @@ struct dss_device {
>       const struct dss_features *feat;
>  
>       struct {
> +             struct dentry *root;
>               struct dss_debugfs_entry *clk;
>               struct dss_debugfs_entry *dss;
>       } debugfs;
> @@ -299,12 +300,14 @@ static inline bool dss_mgr_is_lcd(enum omap_channel id)
>  
>  /* DSS */
>  #if defined(CONFIG_OMAP2_DSS_DEBUGFS)
> -struct dss_debugfs_entry *dss_debugfs_create_file(const char *name,
> -             int (*show_fn)(struct seq_file *s, void *data), void *data);
> +struct dss_debugfs_entry *
> +dss_debugfs_create_file(struct dss_device *dss, const char *name,
> +                     int (*show_fn)(struct seq_file *s, void *data),
> +                     void *data);
>  void dss_debugfs_remove_file(struct dss_debugfs_entry *entry);
>  #else
>  static inline struct dss_debugfs_entry *
> -dss_debugfs_create_file(const char *name,
> +dss_debugfs_create_file(struct dss_device *dss, const char *name,
>                       int (*show_fn)(struct seq_file *s, void *data),
>                       void *data)
>  {
> diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi4.c 
> b/drivers/gpu/drm/omapdrm/dss/hdmi4.c
> index 2050601fef0a..f523b426420f 100644
> --- a/drivers/gpu/drm/omapdrm/dss/hdmi4.c
> +++ b/drivers/gpu/drm/omapdrm/dss/hdmi4.c
> @@ -800,7 +800,8 @@ static int hdmi4_bind(struct device *dev, struct device 
> *master, void *data)
>               return r;
>       }
>  
> -     hdmi->debugfs = dss_debugfs_create_file("hdmi", hdmi_dump_regs, hdmi);
> +     hdmi->debugfs = dss_debugfs_create_file(dss, "hdmi", hdmi_dump_regs,
> +                                             hdmi);
>  
>       return 0;
>  
> diff --git a/drivers/gpu/drm/omapdrm/dss/hdmi5.c 
> b/drivers/gpu/drm/omapdrm/dss/hdmi5.c
> index ec3b044925d0..9017d78a9756 100644
> --- a/drivers/gpu/drm/omapdrm/dss/hdmi5.c
> +++ b/drivers/gpu/drm/omapdrm/dss/hdmi5.c
> @@ -794,7 +794,8 @@ static int hdmi5_bind(struct device *dev, struct device 
> *master, void *data)
>               return r;
>       }
>  
> -     hdmi->debugfs = dss_debugfs_create_file("hdmi", hdmi_dump_regs, hdmi);
> +     hdmi->debugfs = dss_debugfs_create_file(dss, "hdmi", hdmi_dump_regs,
> +                                             hdmi);
>  
>       return 0;
>  
> diff --git a/drivers/gpu/drm/omapdrm/dss/venc.c 
> b/drivers/gpu/drm/omapdrm/dss/venc.c
> index 449a82b84d03..5e475cafb7a4 100644
> --- a/drivers/gpu/drm/omapdrm/dss/venc.c
> +++ b/drivers/gpu/drm/omapdrm/dss/venc.c
> @@ -940,7 +940,8 @@ static int venc_bind(struct device *dev, struct device 
> *master, void *data)
>               goto err_probe_of;
>       }
>  
> -     venc->debugfs = dss_debugfs_create_file("venc", venc_dump_regs, venc);
> +     venc->debugfs = dss_debugfs_create_file(dss, "venc", venc_dump_regs,
> +                                             venc);
>  
>       venc_init_output(venc);
>  
> -- 
> Regards,
> 
> Laurent Pinchart
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

Attachment: signature.asc
Description: PGP signature

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to