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) ...@@ -4624,7 +4624,7 @@ static int dispc_bind(struct device *dev, struct device *master, void *data)
dispc_set_ops(&dispc_ops); 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); &dispc);
return 0; return 0;
......
...@@ -5576,20 +5576,20 @@ static int dsi_bind(struct device *dev, struct device *master, void *data) ...@@ -5576,20 +5576,20 @@ static int dsi_bind(struct device *dev, struct device *master, void *data)
dsi_runtime_put(dsidev); dsi_runtime_put(dsidev);
if (dsi->module_id == 0) 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, dsi1_dump_regs,
&dsi); &dsi);
else else
dsi->debugfs.regs = dss_debugfs_create_file("dsi2_regs", dsi->debugfs.regs = dss_debugfs_create_file(dss, "dsi2_regs",
dsi2_dump_regs, dsi2_dump_regs,
&dsi); &dsi);
#ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS #ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS
if (dsi->module_id == 0) 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, dsi1_dump_irqs,
&dsi); &dsi);
else else
dsi->debugfs.irqs = dss_debugfs_create_file("dsi2_irqs", dsi->debugfs.irqs = dss_debugfs_create_file(dss, "dsi2_irqs",
dsi2_dump_irqs, dsi2_dump_irqs,
&dsi); &dsi);
#endif #endif
......
...@@ -901,25 +901,22 @@ static int dss_debug_dump_clocks(struct seq_file *s, void *p) ...@@ -901,25 +901,22 @@ static int dss_debug_dump_clocks(struct seq_file *s, void *p)
return 0; return 0;
} }
static struct dentry *dss_debugfs_dir;
static int dss_initialize_debugfs(struct dss_device *dss) static int dss_initialize_debugfs(struct dss_device *dss)
{ {
dss_debugfs_dir = debugfs_create_dir("omapdss", NULL); struct dentry *dir;
if (IS_ERR(dss_debugfs_dir)) {
int err = PTR_ERR(dss_debugfs_dir);
dss_debugfs_dir = NULL; dir = debugfs_create_dir("omapdss", NULL);
return err; if (IS_ERR(dir))
} return PTR_ERR(dir);
dss->debugfs.root = dir;
return 0; 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.root);
debugfs_remove_recursive(dss_debugfs_dir);
} }
struct dss_debugfs_entry { struct dss_debugfs_entry {
...@@ -942,8 +939,10 @@ static const struct file_operations dss_debug_fops = { ...@@ -942,8 +939,10 @@ static const struct file_operations dss_debug_fops = {
.release = single_release, .release = single_release,
}; };
struct dss_debugfs_entry *dss_debugfs_create_file(const char *name, struct dss_debugfs_entry *
int (*show_fn)(struct seq_file *s, void *data), void *data) 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 dss_debugfs_entry *entry;
struct dentry *d; struct dentry *d;
...@@ -955,7 +954,7 @@ struct dss_debugfs_entry *dss_debugfs_create_file(const char *name, ...@@ -955,7 +954,7 @@ struct dss_debugfs_entry *dss_debugfs_create_file(const char *name,
entry->show_fn = show_fn; entry->show_fn = show_fn;
entry->data = data; 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); &dss_debug_fops);
if (IS_ERR(d)) { if (IS_ERR(d)) {
kfree(entry); kfree(entry);
...@@ -980,7 +979,7 @@ static inline int dss_initialize_debugfs(struct dss_device *dss) ...@@ -980,7 +979,7 @@ static inline int dss_initialize_debugfs(struct dss_device *dss)
{ {
return 0; return 0;
} }
static inline void dss_uninitialize_debugfs(void) static inline void dss_uninitialize_debugfs(struct dss_device *dss)
{ {
} }
#endif /* CONFIG_OMAP2_DSS_DEBUGFS */ #endif /* CONFIG_OMAP2_DSS_DEBUGFS */
...@@ -1472,9 +1471,10 @@ static int dss_probe(struct platform_device *pdev) ...@@ -1472,9 +1471,10 @@ static int dss_probe(struct platform_device *pdev)
if (r) if (r)
goto err_pm_runtime_disable; 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);
dss->debugfs.dss = dss_debugfs_create_file("dss", dss_dump_regs, dss);
/* Add all the child devices as components. */ /* Add all the child devices as components. */
device_for_each_child(&pdev->dev, &match, dss_add_child_component); device_for_each_child(&pdev->dev, &match, dss_add_child_component);
...@@ -1488,7 +1488,7 @@ static int dss_probe(struct platform_device *pdev) ...@@ -1488,7 +1488,7 @@ static int dss_probe(struct platform_device *pdev)
err_uninit_debugfs: err_uninit_debugfs:
dss_debugfs_remove_file(dss->debugfs.clk); dss_debugfs_remove_file(dss->debugfs.clk);
dss_debugfs_remove_file(dss->debugfs.dss); dss_debugfs_remove_file(dss->debugfs.dss);
dss_uninitialize_debugfs(); dss_uninitialize_debugfs(dss);
err_pm_runtime_disable: err_pm_runtime_disable:
pm_runtime_disable(&pdev->dev); pm_runtime_disable(&pdev->dev);
...@@ -1517,7 +1517,7 @@ static int dss_remove(struct platform_device *pdev) ...@@ -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.clk);
dss_debugfs_remove_file(dss->debugfs.dss); dss_debugfs_remove_file(dss->debugfs.dss);
dss_uninitialize_debugfs(); dss_uninitialize_debugfs(dss);
pm_runtime_disable(&pdev->dev); pm_runtime_disable(&pdev->dev);
......
...@@ -263,6 +263,7 @@ struct dss_device { ...@@ -263,6 +263,7 @@ struct dss_device {
const struct dss_features *feat; const struct dss_features *feat;
struct { struct {
struct dentry *root;
struct dss_debugfs_entry *clk; struct dss_debugfs_entry *clk;
struct dss_debugfs_entry *dss; struct dss_debugfs_entry *dss;
} debugfs; } debugfs;
...@@ -290,12 +291,14 @@ static inline bool dss_mgr_is_lcd(enum omap_channel id) ...@@ -290,12 +291,14 @@ static inline bool dss_mgr_is_lcd(enum omap_channel id)
/* DSS */ /* DSS */
#if defined(CONFIG_OMAP2_DSS_DEBUGFS) #if defined(CONFIG_OMAP2_DSS_DEBUGFS)
struct dss_debugfs_entry *dss_debugfs_create_file(const char *name, struct dss_debugfs_entry *
int (*show_fn)(struct seq_file *s, void *data), void *data); 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); void dss_debugfs_remove_file(struct dss_debugfs_entry *entry);
#else #else
static inline struct dss_debugfs_entry * 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), int (*show_fn)(struct seq_file *s, void *data),
void *data) void *data)
{ {
......
...@@ -780,7 +780,8 @@ static int hdmi4_bind(struct device *dev, struct device *master, void *data) ...@@ -780,7 +780,8 @@ static int hdmi4_bind(struct device *dev, struct device *master, void *data)
return r; 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; return 0;
err: err:
......
...@@ -777,7 +777,8 @@ static int hdmi5_bind(struct device *dev, struct device *master, void *data) ...@@ -777,7 +777,8 @@ static int hdmi5_bind(struct device *dev, struct device *master, void *data)
return r; 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; return 0;
err: err:
......
...@@ -917,7 +917,8 @@ static int venc_bind(struct device *dev, struct device *master, void *data) ...@@ -917,7 +917,8 @@ static int venc_bind(struct device *dev, struct device *master, void *data)
goto err_probe_of; 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); 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