Re: [PATCH v2 21/28] drm: omapdrm: Move all debugfs code from core to dss

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxxxx>
> ---
>  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

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/dri-devel

[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux