[PATCH v2 25/60] drm/omap: Move DSI debugfs clocks dump to dsi%u_clks files

Sebastian Reichel sre at kernel.org
Sun Jun 10 20:09:42 UTC 2018


Hi,

On Sat, May 26, 2018 at 08:24:43PM +0300, Laurent Pinchart wrote:
> The DSI clocks are dumped in the DSS-level debugfs clocks file. This
> complicates the implementation as the DSI private data has to be looked
> up through the outputs list. Simplify it by creating two debugfs files,
> dsi1_clks and dsi2_clks, to dump the DSI clocks.
> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---

Reviewed-by: Sebastian Reichel <sebastian.reichel at collabora.co.uk>

-- Sebastian

>  drivers/gpu/drm/omapdrm/dss/dsi.c | 43 ++++++++-------------------------------
>  drivers/gpu/drm/omapdrm/dss/dss.c |  3 ---
>  drivers/gpu/drm/omapdrm/dss/dss.h |  2 --
>  3 files changed, 9 insertions(+), 39 deletions(-)
> 
> diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c b/drivers/gpu/drm/omapdrm/dss/dsi.c
> index 9952803b58d2..adfda2a63ada 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dsi.c
> +++ b/drivers/gpu/drm/omapdrm/dss/dsi.c
> @@ -403,6 +403,7 @@ struct dsi_data {
>  	struct {
>  		struct dss_debugfs_entry *irqs;
>  		struct dss_debugfs_entry *regs;
> +		struct dss_debugfs_entry *clks;
>  	} debugfs;
>  
>  #ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS
> @@ -442,27 +443,6 @@ static inline struct dsi_data *to_dsi_data(struct omap_dss_device *dssdev)
>  	return dev_get_drvdata(dssdev->dev);
>  }
>  
> -static struct dsi_data *dsi_get_dsi_from_id(int module)
> -{
> -	struct omap_dss_device *out;
> -	enum omap_dss_output_id	id;
> -
> -	switch (module) {
> -	case 0:
> -		id = OMAP_DSS_OUTPUT_DSI1;
> -		break;
> -	case 1:
> -		id = OMAP_DSS_OUTPUT_DSI2;
> -		break;
> -	default:
> -		return NULL;
> -	}
> -
> -	out = omap_dss_get_output(id);
> -
> -	return out ? to_dsi_data(out) : NULL;
> -}
> -
>  static inline void dsi_write_reg(struct dsi_data *dsi,
>  				 const struct dsi_reg idx, u32 val)
>  {
> @@ -1448,8 +1428,9 @@ static void dsi_pll_disable(struct dss_pll *pll)
>  	dsi_pll_uninit(dsi, true);
>  }
>  
> -static void dsi_dump_dsi_clocks(struct dsi_data *dsi, struct seq_file *s)
> +static int dsi_dump_dsi_clocks(struct seq_file *s, void *p)
>  {
> +	struct dsi_data *dsi = p;
>  	struct dss_pll_clock_info *cinfo = &dsi->pll.cinfo;
>  	enum dss_clk_source dispc_clk_src, dsi_clk_src;
>  	int dsi_module = dsi->module_id;
> @@ -1459,7 +1440,7 @@ static void dsi_dump_dsi_clocks(struct dsi_data *dsi, struct seq_file *s)
>  	dsi_clk_src = dss_get_dsi_clk_source(dsi->dss, dsi_module);
>  
>  	if (dsi_runtime_get(dsi))
> -		return;
> +		return 0;
>  
>  	seq_printf(s,	"- DSI%d PLL -\n", dsi_module + 1);
>  
> @@ -1503,18 +1484,8 @@ static void dsi_dump_dsi_clocks(struct dsi_data *dsi, struct seq_file *s)
>  	seq_printf(s,	"LP_CLK\t\t%lu\n", dsi->current_lp_cinfo.lp_clk);
>  
>  	dsi_runtime_put(dsi);
> -}
> -
> -void dsi_dump_clocks(struct seq_file *s)
> -{
> -	struct dsi_data *dsi;
> -	int i;
>  
> -	for  (i = 0; i < MAX_NUM_DSI; i++) {
> -		dsi = dsi_get_dsi_from_id(i);
> -		if (dsi)
> -			dsi_dump_dsi_clocks(dsi, s);
> -	}
> +	return 0;
>  }
>  
>  #ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS
> @@ -5426,6 +5397,9 @@ static int dsi_bind(struct device *dev, struct device *master, void *data)
>  	dsi->debugfs.irqs = dss_debugfs_create_file(dss, name,
>  						    dsi_dump_dsi_irqs, &dsi);
>  #endif
> +	snprintf(name, sizeof(name), "dsi%u_clks", dsi->module_id + 1);
> +	dsi->debugfs.clks = dss_debugfs_create_file(dss, name,
> +						    dsi_dump_dsi_clocks, &dsi);
>  
>  	return 0;
>  
> @@ -5442,6 +5416,7 @@ static void dsi_unbind(struct device *dev, struct device *master, void *data)
>  {
>  	struct dsi_data *dsi = dev_get_drvdata(dev);
>  
> +	dss_debugfs_remove_file(dsi->debugfs.clks);
>  	dss_debugfs_remove_file(dsi->debugfs.irqs);
>  	dss_debugfs_remove_file(dsi->debugfs.regs);
>  
> diff --git a/drivers/gpu/drm/omapdrm/dss/dss.c b/drivers/gpu/drm/omapdrm/dss/dss.c
> index 59b238f03437..8e7646181302 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dss.c
> +++ b/drivers/gpu/drm/omapdrm/dss/dss.c
> @@ -394,9 +394,6 @@ static int dss_debug_dump_clocks(struct seq_file *s, void *p)
>  
>  	dss_dump_clocks(dss, s);
>  	dispc_dump_clocks(dss->dispc, s);
> -#ifdef CONFIG_OMAP2_DSS_DSI
> -	dsi_dump_clocks(s);
> -#endif
>  	return 0;
>  }
>  
> diff --git a/drivers/gpu/drm/omapdrm/dss/dss.h b/drivers/gpu/drm/omapdrm/dss/dss.h
> index 4f1eb7f5b922..a4514843e925 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dss.h
> +++ b/drivers/gpu/drm/omapdrm/dss/dss.h
> @@ -373,8 +373,6 @@ static inline void sdi_uninit_port(struct device_node *port)
>  
>  #ifdef CONFIG_OMAP2_DSS_DSI
>  
> -void dsi_dump_clocks(struct seq_file *s);
> -
>  void dsi_irq_handler(void);
>  
>  #endif
> -- 
> Regards,
> 
> Laurent Pinchart
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/dri-devel/attachments/20180610/415dca48/attachment.sig>


More information about the dri-devel mailing list