[PATCH v2 24/60] drm/omap: dsi: Simplify debugfs implementation

Sebastian Reichel sre at kernel.org
Sun Jun 10 20:08:37 UTC 2018


Hi,

On Sat, May 26, 2018 at 08:24:42PM +0300, Laurent Pinchart wrote:
> The DSI debugfs regs and irqs show handlers received a pointer to the
> DSI private data. There's no need to look it up from the list of DSS
> outputs. Use the pointer directly, this allows simplifying the
> implementation of the handlers.
> 
> 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 | 63 +++++++++------------------------------
>  1 file changed, 14 insertions(+), 49 deletions(-)
> 
> diff --git a/drivers/gpu/drm/omapdrm/dss/dsi.c b/drivers/gpu/drm/omapdrm/dss/dsi.c
> index 4427389e0049..9952803b58d2 100644
> --- a/drivers/gpu/drm/omapdrm/dss/dsi.c
> +++ b/drivers/gpu/drm/omapdrm/dss/dsi.c
> @@ -1518,8 +1518,9 @@ void dsi_dump_clocks(struct seq_file *s)
>  }
>  
>  #ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS
> -static void dsi_dump_dsi_irqs(struct dsi_data *dsi, struct seq_file *s)
> +static int dsi_dump_dsi_irqs(struct seq_file *s, void *p)
>  {
> +	struct dsi_data *dsi = p;
>  	unsigned long flags;
>  	struct dsi_irq_stats stats;
>  
> @@ -1603,33 +1604,20 @@ static void dsi_dump_dsi_irqs(struct dsi_data *dsi, struct seq_file *s)
>  	PIS(ULPSACTIVENOT_ALL0);
>  	PIS(ULPSACTIVENOT_ALL1);
>  #undef PIS
> -}
> -
> -static int dsi1_dump_irqs(struct seq_file *s, void *p)
> -{
> -	struct dsi_data *dsi = dsi_get_dsi_from_id(0);
>  
> -	dsi_dump_dsi_irqs(dsi, s);
> -	return 0;
> -}
> -
> -static int dsi2_dump_irqs(struct seq_file *s, void *p)
> -{
> -	struct dsi_data *dsi = dsi_get_dsi_from_id(1);
> -
> -	dsi_dump_dsi_irqs(dsi, s);
>  	return 0;
>  }
>  #endif
>  
> -static void dsi_dump_dsi_regs(struct dsi_data *dsi, struct seq_file *s)
> +static int dsi_dump_dsi_regs(struct seq_file *s, void *p)
>  {
> -#define DUMPREG(r) seq_printf(s, "%-35s %08x\n", #r, dsi_read_reg(dsi, r))
> +	struct dsi_data *dsi = p;
>  
>  	if (dsi_runtime_get(dsi))
> -		return;
> +		return 0;
>  	dsi_enable_scp_clk(dsi);
>  
> +#define DUMPREG(r) seq_printf(s, "%-35s %08x\n", #r, dsi_read_reg(dsi, r))
>  	DUMPREG(DSI_REVISION);
>  	DUMPREG(DSI_SYSCONFIG);
>  	DUMPREG(DSI_SYSSTATUS);
> @@ -1699,25 +1687,11 @@ static void dsi_dump_dsi_regs(struct dsi_data *dsi, struct seq_file *s)
>  	DUMPREG(DSI_PLL_GO);
>  	DUMPREG(DSI_PLL_CONFIGURATION1);
>  	DUMPREG(DSI_PLL_CONFIGURATION2);
> +#undef DUMPREG
>  
>  	dsi_disable_scp_clk(dsi);
>  	dsi_runtime_put(dsi);
> -#undef DUMPREG
> -}
> -
> -static int dsi1_dump_regs(struct seq_file *s, void *p)
> -{
> -	struct dsi_data *dsi = dsi_get_dsi_from_id(0);
>  
> -	dsi_dump_dsi_regs(dsi, s);
> -	return 0;
> -}
> -
> -static int dsi2_dump_regs(struct seq_file *s, void *p)
> -{
> -	struct dsi_data *dsi = dsi_get_dsi_from_id(1);
> -
> -	dsi_dump_dsi_regs(dsi, s);
>  	return 0;
>  }
>  
> @@ -5305,6 +5279,7 @@ static int dsi_bind(struct device *dev, struct device *master, void *data)
>  	struct dsi_data *dsi;
>  	struct resource *dsi_mem;
>  	struct resource *res;
> +	char name[10];
>  
>  	dsi = devm_kzalloc(dev, sizeof(*dsi), GFP_KERNEL);
>  	if (!dsi)
> @@ -5443,23 +5418,13 @@ static int dsi_bind(struct device *dev, struct device *master, void *data)
>  
>  	dsi_runtime_put(dsi);
>  
> -	if (dsi->module_id == 0)
> -		dsi->debugfs.regs = dss_debugfs_create_file(dss, "dsi1_regs",
> -							    dsi1_dump_regs,
> -							    &dsi);
> -	else
> -		dsi->debugfs.regs = dss_debugfs_create_file(dss, "dsi2_regs",
> -							    dsi2_dump_regs,
> -							    &dsi);
> +	snprintf(name, sizeof(name), "dsi%u_regs", dsi->module_id + 1);
> +	dsi->debugfs.regs = dss_debugfs_create_file(dss, name,
> +						    dsi_dump_dsi_regs, &dsi);
>  #ifdef CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS
> -	if (dsi->module_id == 0)
> -		dsi->debugfs.irqs = dss_debugfs_create_file(dss, "dsi1_irqs",
> -							    dsi1_dump_irqs,
> -							    &dsi);
> -	else
> -		dsi->debugfs.irqs = dss_debugfs_create_file(dss, "dsi2_irqs",
> -							    dsi2_dump_irqs,
> -							    &dsi);
> +	snprintf(name, sizeof(name), "dsi%u_irqs", dsi->module_id + 1);
> +	dsi->debugfs.irqs = dss_debugfs_create_file(dss, name,
> +						    dsi_dump_dsi_irqs, &dsi);
>  #endif
>  
>  	return 0;
> -- 
> 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/18564bd7/attachment.sig>


More information about the dri-devel mailing list