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 > --- > 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 > #include > #include > -#include > -#include > #include > #include > #include > @@ -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 > #include > #include > #include > @@ -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