All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: Joe Perches <joe@perches.com>
Cc: Daniel Vetter <daniel.vetter@intel.com>,
	Jani Nikula <jani.nikula@linux.intel.com>,
	Sean Paul <seanpaul@chromium.org>,
	David Airlie <airlied@linux.ie>,
	linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH] drm: Use vsnprintf extension %ph
Date: Wed, 31 May 2017 10:31:32 +0200	[thread overview]
Message-ID: <20170531083132.d3j4vix25ihw323m@phenom.ffwll.local> (raw)
In-Reply-To: <a78a21b5f34947da65473a0b7326922cda51a3be.1496187315.git.joe@perches.com>

On Tue, May 30, 2017 at 04:35:37PM -0700, Joe Perches wrote:
> Using the extension saves a bit of code.
> 
> Miscellanea:
> 
> o Neaten and simplify dump_dp_payload_table
> o Removed trailing blank space from output

Not a huge fan of smashing random trivia into the same patch, but merged
anyway. %ph is rather neat, TIL.

Thanks, Daniel

> 
> $ size drivers/gpu/drm/drm_dp_mst_topology.o.* drivers/gpu/drm/tinydrm/*.o*
>    text	   data	    bss	    dec	    hex	filename
>   25848	      0	     16	  25864	   6508	drivers/gpu/drm/drm_dp_mst_topology.o.new
>   26091	      0	     16	  26107	   65fb	drivers/gpu/drm/drm_dp_mst_topology.o.old
>    3362	      2	      0	   3364	    d24	drivers/gpu/drm/tinydrm/mipi-dbi.o.new
>    3376	      2	      0	   3378	    d32	drivers/gpu/drm/tinydrm/mipi-dbi.o.old
> 
> Signed-off-by: Joe Perches <joe@perches.com>
> ---
>  drivers/gpu/drm/drm_dp_mst_topology.c | 51 +++++++++++------------------------
>  drivers/gpu/drm/tinydrm/mipi-dbi.c    |  7 ++---
>  2 files changed, 18 insertions(+), 40 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c
> index 222eb1a8549b..bfd237c15e76 100644
> --- a/drivers/gpu/drm/drm_dp_mst_topology.c
> +++ b/drivers/gpu/drm/drm_dp_mst_topology.c
> @@ -2836,16 +2836,15 @@ static void drm_dp_mst_dump_mstb(struct seq_file *m,
>  static bool dump_dp_payload_table(struct drm_dp_mst_topology_mgr *mgr,
>  				  char *buf)
>  {
> -	int ret;
>  	int i;
> -	for (i = 0; i < 4; i++) {
> -		ret = drm_dp_dpcd_read(mgr->aux, DP_PAYLOAD_TABLE_UPDATE_STATUS + (i * 16), &buf[i * 16], 16);
> -		if (ret != 16)
> -			break;
> +
> +	for (i = 0; i < 64; i += 16) {
> +		if (drm_dp_dpcd_read(mgr->aux,
> +				     DP_PAYLOAD_TABLE_UPDATE_STATUS + i,
> +				     &buf[i], 16) != 16)
> +			return false;
>  	}
> -	if (i == 4)
> -		return true;
> -	return false;
> +	return true;
>  }
>  
>  static void fetch_monitor_name(struct drm_dp_mst_topology_mgr *mgr,
> @@ -2909,42 +2908,24 @@ void drm_dp_mst_dump_topology(struct seq_file *m,
>  	mutex_lock(&mgr->lock);
>  	if (mgr->mst_primary) {
>  		u8 buf[64];
> -		bool bret;
>  		int ret;
> +
>  		ret = drm_dp_dpcd_read(mgr->aux, DP_DPCD_REV, buf, DP_RECEIVER_CAP_SIZE);
> -		seq_printf(m, "dpcd: ");
> -		for (i = 0; i < DP_RECEIVER_CAP_SIZE; i++)
> -			seq_printf(m, "%02x ", buf[i]);
> -		seq_printf(m, "\n");
> +		seq_printf(m, "dpcd: %*ph\n", DP_RECEIVER_CAP_SIZE, buf);
>  		ret = drm_dp_dpcd_read(mgr->aux, DP_FAUX_CAP, buf, 2);
> -		seq_printf(m, "faux/mst: ");
> -		for (i = 0; i < 2; i++)
> -			seq_printf(m, "%02x ", buf[i]);
> -		seq_printf(m, "\n");
> +		seq_printf(m, "faux/mst: %*ph\n", 2, buf);
>  		ret = drm_dp_dpcd_read(mgr->aux, DP_MSTM_CTRL, buf, 1);
> -		seq_printf(m, "mst ctrl: ");
> -		for (i = 0; i < 1; i++)
> -			seq_printf(m, "%02x ", buf[i]);
> -		seq_printf(m, "\n");
> +		seq_printf(m, "mst ctrl: %*ph\n", 1, buf);
>  
>  		/* dump the standard OUI branch header */
>  		ret = drm_dp_dpcd_read(mgr->aux, DP_BRANCH_OUI, buf, DP_BRANCH_OUI_HEADER_SIZE);
> -		seq_printf(m, "branch oui: ");
> -		for (i = 0; i < 0x3; i++)
> -			seq_printf(m, "%02x", buf[i]);
> -		seq_printf(m, " devid: ");
> +		seq_printf(m, "branch oui: %*phN devid: ", 3, buf);
>  		for (i = 0x3; i < 0x8 && buf[i]; i++)
>  			seq_printf(m, "%c", buf[i]);
> -
> -		seq_printf(m, " revision: hw: %x.%x sw: %x.%x", buf[0x9] >> 4, buf[0x9] & 0xf, buf[0xa], buf[0xb]);
> -		seq_printf(m, "\n");
> -		bret = dump_dp_payload_table(mgr, buf);
> -		if (bret == true) {
> -			seq_printf(m, "payload table: ");
> -			for (i = 0; i < 63; i++)
> -				seq_printf(m, "%02x ", buf[i]);
> -			seq_printf(m, "\n");
> -		}
> +		seq_printf(m, " revision: hw: %x.%x sw: %x.%x\n",
> +			   buf[0x9] >> 4, buf[0x9] & 0xf, buf[0xa], buf[0xb]);
> +		if (dump_dp_payload_table(mgr, buf))
> +			seq_printf(m, "payload table: %*ph\n", 63, buf);
>  
>  	}
>  
> diff --git a/drivers/gpu/drm/tinydrm/mipi-dbi.c b/drivers/gpu/drm/tinydrm/mipi-dbi.c
> index f4eb412f3604..c83eeb7a34b0 100644
> --- a/drivers/gpu/drm/tinydrm/mipi-dbi.c
> +++ b/drivers/gpu/drm/tinydrm/mipi-dbi.c
> @@ -914,7 +914,7 @@ static int mipi_dbi_debugfs_command_show(struct seq_file *m, void *unused)
>  {
>  	struct mipi_dbi *mipi = m->private;
>  	u8 cmd, val[4];
> -	size_t len, i;
> +	size_t len;
>  	int ret;
>  
>  	for (cmd = 0; cmd < 255; cmd++) {
> @@ -943,10 +943,7 @@ static int mipi_dbi_debugfs_command_show(struct seq_file *m, void *unused)
>  			seq_puts(m, "XX\n");
>  			continue;
>  		}
> -
> -		for (i = 0; i < len; i++)
> -			seq_printf(m, "%02x", val[i]);
> -		seq_puts(m, "\n");
> +		seq_printf(m, "%*phN\n", (int)len, val);
>  	}
>  
>  	return 0;
> -- 
> 2.10.0.rc2.1.g053435c
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

WARNING: multiple messages have this Message-ID (diff)
From: Daniel Vetter <daniel@ffwll.ch>
To: Joe Perches <joe@perches.com>
Cc: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
	Daniel Vetter <daniel.vetter@intel.com>
Subject: Re: [PATCH] drm: Use vsnprintf extension %ph
Date: Wed, 31 May 2017 10:31:32 +0200	[thread overview]
Message-ID: <20170531083132.d3j4vix25ihw323m@phenom.ffwll.local> (raw)
In-Reply-To: <a78a21b5f34947da65473a0b7326922cda51a3be.1496187315.git.joe@perches.com>

On Tue, May 30, 2017 at 04:35:37PM -0700, Joe Perches wrote:
> Using the extension saves a bit of code.
> 
> Miscellanea:
> 
> o Neaten and simplify dump_dp_payload_table
> o Removed trailing blank space from output

Not a huge fan of smashing random trivia into the same patch, but merged
anyway. %ph is rather neat, TIL.

Thanks, Daniel

> 
> $ size drivers/gpu/drm/drm_dp_mst_topology.o.* drivers/gpu/drm/tinydrm/*.o*
>    text	   data	    bss	    dec	    hex	filename
>   25848	      0	     16	  25864	   6508	drivers/gpu/drm/drm_dp_mst_topology.o.new
>   26091	      0	     16	  26107	   65fb	drivers/gpu/drm/drm_dp_mst_topology.o.old
>    3362	      2	      0	   3364	    d24	drivers/gpu/drm/tinydrm/mipi-dbi.o.new
>    3376	      2	      0	   3378	    d32	drivers/gpu/drm/tinydrm/mipi-dbi.o.old
> 
> Signed-off-by: Joe Perches <joe@perches.com>
> ---
>  drivers/gpu/drm/drm_dp_mst_topology.c | 51 +++++++++++------------------------
>  drivers/gpu/drm/tinydrm/mipi-dbi.c    |  7 ++---
>  2 files changed, 18 insertions(+), 40 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c
> index 222eb1a8549b..bfd237c15e76 100644
> --- a/drivers/gpu/drm/drm_dp_mst_topology.c
> +++ b/drivers/gpu/drm/drm_dp_mst_topology.c
> @@ -2836,16 +2836,15 @@ static void drm_dp_mst_dump_mstb(struct seq_file *m,
>  static bool dump_dp_payload_table(struct drm_dp_mst_topology_mgr *mgr,
>  				  char *buf)
>  {
> -	int ret;
>  	int i;
> -	for (i = 0; i < 4; i++) {
> -		ret = drm_dp_dpcd_read(mgr->aux, DP_PAYLOAD_TABLE_UPDATE_STATUS + (i * 16), &buf[i * 16], 16);
> -		if (ret != 16)
> -			break;
> +
> +	for (i = 0; i < 64; i += 16) {
> +		if (drm_dp_dpcd_read(mgr->aux,
> +				     DP_PAYLOAD_TABLE_UPDATE_STATUS + i,
> +				     &buf[i], 16) != 16)
> +			return false;
>  	}
> -	if (i == 4)
> -		return true;
> -	return false;
> +	return true;
>  }
>  
>  static void fetch_monitor_name(struct drm_dp_mst_topology_mgr *mgr,
> @@ -2909,42 +2908,24 @@ void drm_dp_mst_dump_topology(struct seq_file *m,
>  	mutex_lock(&mgr->lock);
>  	if (mgr->mst_primary) {
>  		u8 buf[64];
> -		bool bret;
>  		int ret;
> +
>  		ret = drm_dp_dpcd_read(mgr->aux, DP_DPCD_REV, buf, DP_RECEIVER_CAP_SIZE);
> -		seq_printf(m, "dpcd: ");
> -		for (i = 0; i < DP_RECEIVER_CAP_SIZE; i++)
> -			seq_printf(m, "%02x ", buf[i]);
> -		seq_printf(m, "\n");
> +		seq_printf(m, "dpcd: %*ph\n", DP_RECEIVER_CAP_SIZE, buf);
>  		ret = drm_dp_dpcd_read(mgr->aux, DP_FAUX_CAP, buf, 2);
> -		seq_printf(m, "faux/mst: ");
> -		for (i = 0; i < 2; i++)
> -			seq_printf(m, "%02x ", buf[i]);
> -		seq_printf(m, "\n");
> +		seq_printf(m, "faux/mst: %*ph\n", 2, buf);
>  		ret = drm_dp_dpcd_read(mgr->aux, DP_MSTM_CTRL, buf, 1);
> -		seq_printf(m, "mst ctrl: ");
> -		for (i = 0; i < 1; i++)
> -			seq_printf(m, "%02x ", buf[i]);
> -		seq_printf(m, "\n");
> +		seq_printf(m, "mst ctrl: %*ph\n", 1, buf);
>  
>  		/* dump the standard OUI branch header */
>  		ret = drm_dp_dpcd_read(mgr->aux, DP_BRANCH_OUI, buf, DP_BRANCH_OUI_HEADER_SIZE);
> -		seq_printf(m, "branch oui: ");
> -		for (i = 0; i < 0x3; i++)
> -			seq_printf(m, "%02x", buf[i]);
> -		seq_printf(m, " devid: ");
> +		seq_printf(m, "branch oui: %*phN devid: ", 3, buf);
>  		for (i = 0x3; i < 0x8 && buf[i]; i++)
>  			seq_printf(m, "%c", buf[i]);
> -
> -		seq_printf(m, " revision: hw: %x.%x sw: %x.%x", buf[0x9] >> 4, buf[0x9] & 0xf, buf[0xa], buf[0xb]);
> -		seq_printf(m, "\n");
> -		bret = dump_dp_payload_table(mgr, buf);
> -		if (bret == true) {
> -			seq_printf(m, "payload table: ");
> -			for (i = 0; i < 63; i++)
> -				seq_printf(m, "%02x ", buf[i]);
> -			seq_printf(m, "\n");
> -		}
> +		seq_printf(m, " revision: hw: %x.%x sw: %x.%x\n",
> +			   buf[0x9] >> 4, buf[0x9] & 0xf, buf[0xa], buf[0xb]);
> +		if (dump_dp_payload_table(mgr, buf))
> +			seq_printf(m, "payload table: %*ph\n", 63, buf);
>  
>  	}
>  
> diff --git a/drivers/gpu/drm/tinydrm/mipi-dbi.c b/drivers/gpu/drm/tinydrm/mipi-dbi.c
> index f4eb412f3604..c83eeb7a34b0 100644
> --- a/drivers/gpu/drm/tinydrm/mipi-dbi.c
> +++ b/drivers/gpu/drm/tinydrm/mipi-dbi.c
> @@ -914,7 +914,7 @@ static int mipi_dbi_debugfs_command_show(struct seq_file *m, void *unused)
>  {
>  	struct mipi_dbi *mipi = m->private;
>  	u8 cmd, val[4];
> -	size_t len, i;
> +	size_t len;
>  	int ret;
>  
>  	for (cmd = 0; cmd < 255; cmd++) {
> @@ -943,10 +943,7 @@ static int mipi_dbi_debugfs_command_show(struct seq_file *m, void *unused)
>  			seq_puts(m, "XX\n");
>  			continue;
>  		}
> -
> -		for (i = 0; i < len; i++)
> -			seq_printf(m, "%02x", val[i]);
> -		seq_puts(m, "\n");
> +		seq_printf(m, "%*phN\n", (int)len, val);
>  	}
>  
>  	return 0;
> -- 
> 2.10.0.rc2.1.g053435c
> 
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2017-05-31  8:32 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-30 23:35 [PATCH] drm: Use vsnprintf extension %ph Joe Perches
2017-05-30 23:35 ` Joe Perches
2017-05-31  8:31 ` Daniel Vetter [this message]
2017-05-31  8:31   ` Daniel Vetter
2017-06-10 16:12 ` Andy Shevchenko
2017-06-10 16:12   ` Andy Shevchenko
2017-06-11  0:20   ` Joe Perches
2017-06-11  0:20     ` Joe Perches
2017-06-11 13:52     ` Andy Shevchenko
2017-06-11 13:52       ` Andy Shevchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170531083132.d3j4vix25ihw323m@phenom.ffwll.local \
    --to=daniel@ffwll.ch \
    --cc=airlied@linux.ie \
    --cc=daniel.vetter@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=jani.nikula@linux.intel.com \
    --cc=joe@perches.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=seanpaul@chromium.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.