On 08/05/17 14:32, Laurent Pinchart wrote:
debugfs code is spread between the core and dss drivers. In preparation for removal of the core driver, move it all to the dss driver.
Signed-off-by: Laurent Pinchart laurent.pinchart@ideasonboard.com
drivers/gpu/drm/omapdrm/dss/core.c | 80 -------------------------------------- drivers/gpu/drm/omapdrm/dss/dss.c | 77 ++++++++++++++++++++++++++++++++++-- drivers/gpu/drm/omapdrm/dss/dss.h | 13 +++++-- 3 files changed, 84 insertions(+), 86 deletions(-)
diff --git a/drivers/gpu/drm/omapdrm/dss/core.c b/drivers/gpu/drm/omapdrm/dss/core.c index ff6357df0588..dc2147ec78f6 100644 --- a/drivers/gpu/drm/omapdrm/dss/core.c +++ b/drivers/gpu/drm/omapdrm/dss/core.c @@ -27,8 +27,6 @@ #include <linux/clk.h> #include <linux/err.h> #include <linux/platform_device.h> -#include <linux/seq_file.h> -#include <linux/debugfs.h> #include <linux/io.h> #include <linux/device.h> #include <linux/regulator/consumer.h> @@ -50,72 +48,6 @@ enum omapdss_version omapdss_get_version(void) } EXPORT_SYMBOL(omapdss_get_version);
-#if defined(CONFIG_OMAP2_DSS_DEBUGFS) -static int dss_debug_show(struct seq_file *s, void *unused) -{
- void (*func)(struct seq_file *) = s->private;
- func(s);
- return 0;
-}
-static int dss_debug_open(struct inode *inode, struct file *file) -{
- return single_open(file, dss_debug_show, inode->i_private);
-}
-static const struct file_operations dss_debug_fops = {
- .open = dss_debug_open,
- .read = seq_read,
- .llseek = seq_lseek,
- .release = single_release,
-};
-static struct dentry *dss_debugfs_dir;
-static int dss_initialize_debugfs(void) -{
- dss_debugfs_dir = debugfs_create_dir("omapdss", NULL);
- if (IS_ERR(dss_debugfs_dir)) {
int err = PTR_ERR(dss_debugfs_dir);
dss_debugfs_dir = NULL;
return err;
- }
- debugfs_create_file("clk", S_IRUGO, dss_debugfs_dir,
&dss_debug_dump_clocks, &dss_debug_fops);
- return 0;
-}
-static void dss_uninitialize_debugfs(void) -{
- if (dss_debugfs_dir)
debugfs_remove_recursive(dss_debugfs_dir);
-}
-int dss_debugfs_create_file(const char *name, void (*write)(struct seq_file *)) -{
- struct dentry *d;
- d = debugfs_create_file(name, S_IRUGO, dss_debugfs_dir,
write, &dss_debug_fops);
- return PTR_ERR_OR_ZERO(d);
-} -#else /* CONFIG_OMAP2_DSS_DEBUGFS */ -static inline int dss_initialize_debugfs(void) -{
- return 0;
-} -static inline void dss_uninitialize_debugfs(void) -{ -} -int dss_debugfs_create_file(const char *name, void (*write)(struct seq_file *)) -{
- return 0;
-} -#endif /* CONFIG_OMAP2_DSS_DEBUGFS */
/* PLATFORM DEVICE */
static void dss_disable_all_devices(void) @@ -133,27 +65,15 @@ static void dss_disable_all_devices(void)
static int __init omap_dss_probe(struct platform_device *pdev) {
int r;
core.pdev = pdev;
dss_features_init(omapdss_get_version());
r = dss_initialize_debugfs();
if (r)
goto err_debugfs;
return 0;
-err_debugfs:
- return r;
}
static int omap_dss_remove(struct platform_device *pdev) {
- dss_uninitialize_debugfs();
- return 0;
}
diff --git a/drivers/gpu/drm/omapdrm/dss/dss.c b/drivers/gpu/drm/omapdrm/dss/dss.c index 4fdb77dd90b8..618fd4dcbd5a 100644 --- a/drivers/gpu/drm/omapdrm/dss/dss.c +++ b/drivers/gpu/drm/omapdrm/dss/dss.c @@ -22,6 +22,7 @@
#define DSS_SUBSYS_NAME "DSS"
+#include <linux/debugfs.h> #include <linux/kernel.h> #include <linux/module.h> #include <linux/io.h> @@ -896,7 +897,7 @@ void dss_runtime_put(void)
/* DEBUGFS */ #if defined(CONFIG_OMAP2_DSS_DEBUGFS) -void dss_debug_dump_clocks(struct seq_file *s) +static void dss_debug_dump_clocks(struct seq_file *s) { dss_dump_clocks(s); dispc_dump_clocks(s); @@ -904,8 +905,69 @@ void dss_debug_dump_clocks(struct seq_file *s) dsi_dump_clocks(s); #endif } -#endif
+static int dss_debug_show(struct seq_file *s, void *unused) +{
- void (*func)(struct seq_file *) = s->private;
- func(s);
- return 0;
+}
+static int dss_debug_open(struct inode *inode, struct file *file) +{
- return single_open(file, dss_debug_show, inode->i_private);
+}
+static const struct file_operations dss_debug_fops = {
- .open = dss_debug_open,
- .read = seq_read,
- .llseek = seq_lseek,
- .release = single_release,
+};
+static struct dentry *dss_debugfs_dir;
+static int dss_initialize_debugfs(void) +{
- dss_debugfs_dir = debugfs_create_dir("omapdss", NULL);
- if (IS_ERR(dss_debugfs_dir)) {
int err = PTR_ERR(dss_debugfs_dir);
dss_debugfs_dir = NULL;
return err;
- }
- debugfs_create_file("clk", S_IRUGO, dss_debugfs_dir,
&dss_debug_dump_clocks, &dss_debug_fops);
- return 0;
+}
+static void dss_uninitialize_debugfs(void) +{
- if (dss_debugfs_dir)
debugfs_remove_recursive(dss_debugfs_dir);
+}
+int dss_debugfs_create_file(const char *name, void (*write)(struct seq_file *)) +{
- struct dentry *d;
- d = debugfs_create_file(name, S_IRUGO, dss_debugfs_dir,
write, &dss_debug_fops);
- return PTR_ERR_OR_ZERO(d);
+} +#else /* CONFIG_OMAP2_DSS_DEBUGFS */ +static inline int dss_initialize_debugfs(void) +{
- return 0;
+} +static inline void dss_uninitialize_debugfs(void) +{ +} +#endif /* CONFIG_OMAP2_DSS_DEBUGFS */
static const struct dss_ops dss_ops_omap2_omap3 = { .dpi_select_source = &dss_dpi_select_source_omap2_omap3, @@ -1334,12 +1396,18 @@ static int dss_probe(struct platform_device *pdev) else dss.feat = of_match_device(dss_of_match, &pdev->dev)->data;
r = dss_initialize_debugfs();
if (r)
return r;
/* add all the child devices as components */ device_for_each_child(&pdev->dev, &match, dss_add_child_component);
r = component_master_add_with_match(&pdev->dev, &dss_component_ops, match);
- if (r)
- if (r) {
dss_initialize_debugfs();
Uninitialize.
return r;
}
return 0;
} @@ -1347,6 +1415,9 @@ static int dss_probe(struct platform_device *pdev) static int dss_remove(struct platform_device *pdev) { component_master_del(&pdev->dev, &dss_component_ops);
- dss_uninitialize_debugfs();
- return 0;
}
diff --git a/drivers/gpu/drm/omapdrm/dss/dss.h b/drivers/gpu/drm/omapdrm/dss/dss.h index 1ef7c0e75d4c..eca7d731f5c8 100644 --- a/drivers/gpu/drm/omapdrm/dss/dss.h +++ b/drivers/gpu/drm/omapdrm/dss/dss.h @@ -236,8 +236,6 @@ static inline int dss_set_min_bus_tput(struct device *dev, unsigned long tput) return 0; }
-int dss_debugfs_create_file(const char *name, void (*write)(struct seq_file *));
static inline bool dss_mgr_is_lcd(enum omap_channel id) { if (id == OMAP_DSS_CHANNEL_LCD || id == OMAP_DSS_CHANNEL_LCD2 || @@ -248,6 +246,16 @@ static inline bool dss_mgr_is_lcd(enum omap_channel id) }
/* DSS */ +#if defined(CONFIG_OMAP2_DSS_DEBUGFS) +int dss_debugfs_create_file(const char *name, void (*write)(struct seq_file *)); +#else +static inline int dss_debugfs_create_file(const char *name,
void (*write)(struct seq_file *))
+{
- return 0;
+} +#endif /* CONFIG_OMAP2_DSS_DEBUGFS */
int dss_init_platform_driver(void) __init; void dss_uninit_platform_driver(void);
@@ -271,7 +279,6 @@ struct device_node *dss_of_port_get_parent_device(struct device_node *port); u32 dss_of_port_get_port_number(struct device_node *port);
#if defined(CONFIG_OMAP2_DSS_DEBUGFS) -void dss_debug_dump_clocks(struct seq_file *s); #endif
Looks like the #if and #endif can be removed too.
Tomi