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.pinchart@xxxxxxxxxxxxxxxx> > --- > 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.reichel@xxxxxxxxxxxxxxx> -- 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@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel
Attachment:
signature.asc
Description: PGP signature
_______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel