Commit 1c4b92ee authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Tomi Valkeinen

drm: omapdrm: dss: Store the debugfs root directory in struct dss_device

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: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: default avatarSebastian Reichel <sebastian.reichel@collabora.co.uk>
parent 798957ae
......@@ -4624,7 +4624,7 @@ static int dispc_bind(struct device *dev, struct device *master, void *data)
dispc_set_ops(&dispc_ops);
dispc.debugfs = dss_debugfs_create_file("dispc", dispc_dump_regs,
dispc.debugfs = dss_debugfs_create_file(dss, "dispc", dispc_dump_regs,
&dispc);
return 0;
......
......@@ -5576,20 +5576,20 @@ static int dsi_bind(struct device *dev, struct device *master, void *data)
dsi_runtime_put(dsidev);
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
......
......@@ -901,25 +901,22 @@ 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);
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);
debugfs_remove_recursive(dss->debugfs.root);
}
struct dss_debugfs_entry {
......@@ -942,8 +939,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;
......@@ -955,7 +954,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);
......@@ -980,7 +979,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 */
......@@ -1472,9 +1471,10 @@ static int dss_probe(struct platform_device *pdev)
if (r)
goto err_pm_runtime_disable;
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);
/* Add all the child devices as components. */
device_for_each_child(&pdev->dev, &match, dss_add_child_component);
......@@ -1488,7 +1488,7 @@ static int dss_probe(struct platform_device *pdev)
err_uninit_debugfs:
dss_debugfs_remove_file(dss->debugfs.clk);
dss_debugfs_remove_file(dss->debugfs.dss);
dss_uninitialize_debugfs();
dss_uninitialize_debugfs(dss);
err_pm_runtime_disable:
pm_runtime_disable(&pdev->dev);
......@@ -1517,7 +1517,7 @@ static int dss_remove(struct platform_device *pdev)
dss_debugfs_remove_file(dss->debugfs.clk);
dss_debugfs_remove_file(dss->debugfs.dss);
dss_uninitialize_debugfs();
dss_uninitialize_debugfs(dss);
pm_runtime_disable(&pdev->dev);
......
......@@ -263,6 +263,7 @@ struct dss_device {
const struct dss_features *feat;
struct {
struct dentry *root;
struct dss_debugfs_entry *clk;
struct dss_debugfs_entry *dss;
} debugfs;
......@@ -290,12 +291,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)
{
......
......@@ -780,7 +780,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;
err:
......
......@@ -777,7 +777,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;
err:
......
......@@ -917,7 +917,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(pdev);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment