[PATCH 47/48] drm: omapdrm: dss: Store the debugfs root directory in struct dss_device
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Fri Oct 13 14:59:43 UTC 2017
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 at 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;
- 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
More information about the dri-devel
mailing list