Message ID | 20171013145944.26557-48-laurent.pinchart@ideasonboard.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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@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.reichel@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
Hi Sebastian, On Wednesday, 18 October 2017 01:16:53 EEST Sebastian Reichel wrote: > 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@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(-) [snip] > > 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? Oops. Will fix in v2. Thanks for catching it. > Otherwise: > > Reviewed-by: Sebastian Reichel <sebastian.reichel@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; > > } [snip]
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; - 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);
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@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(-)