* [PATCH 0/3] drm: add drm_printer based hex dumper and use it
@ 2024-12-05 9:49 Jani Nikula
2024-12-05 9:49 ` [PATCH 1/3] drm/print: add drm_print_hex_dump() Jani Nikula
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Jani Nikula @ 2024-12-05 9:49 UTC (permalink / raw)
To: dri-devel, intel-gfx, intel-xe; +Cc: jani.nikula
Add a hex dumper for drm_printer, and use it to simplify hex dumping in
i915.
Jani Nikula (3):
drm/print: add drm_print_hex_dump()
drm/i915/display: use drm_print_hex_dump() for crtc state dump
drm/i915/display: use drm_print_hex_dump() for buffer mismatch dumps
drivers/gpu/drm/drm_print.c | 23 +++++++++++++++++++
.../drm/i915/display/intel_crtc_state_dump.c | 14 ++---------
drivers/gpu/drm/i915/display/intel_display.c | 17 ++------------
include/drm/drm_print.h | 2 ++
4 files changed, 29 insertions(+), 27 deletions(-)
--
2.39.5
^ permalink raw reply [flat|nested] 9+ messages in thread* [PATCH 1/3] drm/print: add drm_print_hex_dump() 2024-12-05 9:49 [PATCH 0/3] drm: add drm_printer based hex dumper and use it Jani Nikula @ 2024-12-05 9:49 ` Jani Nikula 2024-12-05 13:12 ` Andi Shyti 2024-12-09 11:02 ` Jani Nikula 2024-12-05 9:49 ` [PATCH 2/3] drm/i915/display: use drm_print_hex_dump() for crtc state dump Jani Nikula [not found] ` <a536050b5f9dc2d7de32d29766c98477f58d746c.1733392101.git.jani.nikula@intel.com> 2 siblings, 2 replies; 9+ messages in thread From: Jani Nikula @ 2024-12-05 9:49 UTC (permalink / raw) To: dri-devel, intel-gfx, intel-xe; +Cc: jani.nikula Add a helper to print a hex dump to a struct drm_printer. There's no fancy formatting stuff, just 16 space-separated bytes per line, with an optional prefix. Signed-off-by: Jani Nikula <jani.nikula@intel.com> --- drivers/gpu/drm/drm_print.c | 23 +++++++++++++++++++++++ include/drm/drm_print.h | 2 ++ 2 files changed, 25 insertions(+) diff --git a/drivers/gpu/drm/drm_print.c b/drivers/gpu/drm/drm_print.c index 08cfea04e22b..79517bd4418f 100644 --- a/drivers/gpu/drm/drm_print.c +++ b/drivers/gpu/drm/drm_print.c @@ -390,3 +390,26 @@ void drm_print_regset32(struct drm_printer *p, struct debugfs_regset32 *regset) } } EXPORT_SYMBOL(drm_print_regset32); + +/** + * drm_print_hex_dump - print a hex dump to a &drm_printer stream + * @p: The &drm_printer + * @prefix: Prefix for each line, may be NULL for no prefix + * @buf: Buffer to dump + * @len: Length of buffer + * + * Print hex dump to &drm_printer, with 16 space-separated hex bytes per line, + * optionally with a prefix on each line. No separator is added after prefix. + */ +void drm_print_hex_dump(struct drm_printer *p, const char *prefix, + const u8 *buf, size_t len) +{ + int i; + + for (i = 0; i < len; i += 16) { + int bytes_per_line = min(16, len - i); + + drm_printf(p, "%s%*ph\n", prefix ?: "", bytes_per_line, buf + i); + } +} +EXPORT_SYMBOL(drm_print_hex_dump); diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h index b3906dc04388..f77fe1531cf8 100644 --- a/include/drm/drm_print.h +++ b/include/drm/drm_print.h @@ -199,6 +199,8 @@ void drm_puts(struct drm_printer *p, const char *str); void drm_print_regset32(struct drm_printer *p, struct debugfs_regset32 *regset); void drm_print_bits(struct drm_printer *p, unsigned long value, const char * const bits[], unsigned int nbits); +void drm_print_hex_dump(struct drm_printer *p, const char *prefix, + const u8 *buf, size_t len); __printf(2, 0) /** -- 2.39.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] drm/print: add drm_print_hex_dump() 2024-12-05 9:49 ` [PATCH 1/3] drm/print: add drm_print_hex_dump() Jani Nikula @ 2024-12-05 13:12 ` Andi Shyti 2024-12-10 12:33 ` Jani Nikula 2024-12-09 11:02 ` Jani Nikula 1 sibling, 1 reply; 9+ messages in thread From: Andi Shyti @ 2024-12-05 13:12 UTC (permalink / raw) To: Jani Nikula; +Cc: dri-devel, intel-gfx, intel-xe Hi Jani, On Thu, Dec 05, 2024 at 11:49:33AM +0200, Jani Nikula wrote: > Add a helper to print a hex dump to a struct drm_printer. There's no > fancy formatting stuff, just 16 space-separated bytes per line, with an > optional prefix. > > Signed-off-by: Jani Nikula <jani.nikula@intel.com> Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com> Thanks, Andi ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] drm/print: add drm_print_hex_dump() 2024-12-05 13:12 ` Andi Shyti @ 2024-12-10 12:33 ` Jani Nikula 0 siblings, 0 replies; 9+ messages in thread From: Jani Nikula @ 2024-12-10 12:33 UTC (permalink / raw) To: Andi Shyti; +Cc: dri-devel, intel-gfx, intel-xe On Thu, 05 Dec 2024, Andi Shyti <andi.shyti@linux.intel.com> wrote: > Hi Jani, > > On Thu, Dec 05, 2024 at 11:49:33AM +0200, Jani Nikula wrote: >> Add a helper to print a hex dump to a struct drm_printer. There's no >> fancy formatting stuff, just 16 space-separated bytes per line, with an >> optional prefix. >> >> Signed-off-by: Jani Nikula <jani.nikula@intel.com> > > Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com> Thanks for the review, pushed the series to drm-intel-next with Thomas' IRC ack on patch 1. BR, Jani. > > Thanks, > Andi -- Jani Nikula, Intel ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 1/3] drm/print: add drm_print_hex_dump() 2024-12-05 9:49 ` [PATCH 1/3] drm/print: add drm_print_hex_dump() Jani Nikula 2024-12-05 13:12 ` Andi Shyti @ 2024-12-09 11:02 ` Jani Nikula 1 sibling, 0 replies; 9+ messages in thread From: Jani Nikula @ 2024-12-09 11:02 UTC (permalink / raw) To: dri-devel, intel-gfx, intel-xe, Thomas Zimmermann, Maxime Ripard, Maarten Lankhorst On Thu, 05 Dec 2024, Jani Nikula <jani.nikula@intel.com> wrote: > Add a helper to print a hex dump to a struct drm_printer. There's no > fancy formatting stuff, just 16 space-separated bytes per line, with an > optional prefix. drm-misc maintainers, ack for merging this via drm-intel-next? BR, Jani. > > Signed-off-by: Jani Nikula <jani.nikula@intel.com> > --- > drivers/gpu/drm/drm_print.c | 23 +++++++++++++++++++++++ > include/drm/drm_print.h | 2 ++ > 2 files changed, 25 insertions(+) > > diff --git a/drivers/gpu/drm/drm_print.c b/drivers/gpu/drm/drm_print.c > index 08cfea04e22b..79517bd4418f 100644 > --- a/drivers/gpu/drm/drm_print.c > +++ b/drivers/gpu/drm/drm_print.c > @@ -390,3 +390,26 @@ void drm_print_regset32(struct drm_printer *p, struct debugfs_regset32 *regset) > } > } > EXPORT_SYMBOL(drm_print_regset32); > + > +/** > + * drm_print_hex_dump - print a hex dump to a &drm_printer stream > + * @p: The &drm_printer > + * @prefix: Prefix for each line, may be NULL for no prefix > + * @buf: Buffer to dump > + * @len: Length of buffer > + * > + * Print hex dump to &drm_printer, with 16 space-separated hex bytes per line, > + * optionally with a prefix on each line. No separator is added after prefix. > + */ > +void drm_print_hex_dump(struct drm_printer *p, const char *prefix, > + const u8 *buf, size_t len) > +{ > + int i; > + > + for (i = 0; i < len; i += 16) { > + int bytes_per_line = min(16, len - i); > + > + drm_printf(p, "%s%*ph\n", prefix ?: "", bytes_per_line, buf + i); > + } > +} > +EXPORT_SYMBOL(drm_print_hex_dump); > diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h > index b3906dc04388..f77fe1531cf8 100644 > --- a/include/drm/drm_print.h > +++ b/include/drm/drm_print.h > @@ -199,6 +199,8 @@ void drm_puts(struct drm_printer *p, const char *str); > void drm_print_regset32(struct drm_printer *p, struct debugfs_regset32 *regset); > void drm_print_bits(struct drm_printer *p, unsigned long value, > const char * const bits[], unsigned int nbits); > +void drm_print_hex_dump(struct drm_printer *p, const char *prefix, > + const u8 *buf, size_t len); > > __printf(2, 0) > /** -- Jani Nikula, Intel ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/3] drm/i915/display: use drm_print_hex_dump() for crtc state dump 2024-12-05 9:49 [PATCH 0/3] drm: add drm_printer based hex dumper and use it Jani Nikula 2024-12-05 9:49 ` [PATCH 1/3] drm/print: add drm_print_hex_dump() Jani Nikula @ 2024-12-05 9:49 ` Jani Nikula 2024-12-05 13:16 ` Andi Shyti [not found] ` <a536050b5f9dc2d7de32d29766c98477f58d746c.1733392101.git.jani.nikula@intel.com> 2 siblings, 1 reply; 9+ messages in thread From: Jani Nikula @ 2024-12-05 9:49 UTC (permalink / raw) To: dri-devel, intel-gfx, intel-xe; +Cc: jani.nikula Use the drm_printer based printer to get the device specific printing of the hex dump. Signed-off-by: Jani Nikula <jani.nikula@intel.com> --- .../gpu/drm/i915/display/intel_crtc_state_dump.c | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c b/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c index 705ec5ad385c..1faef60be472 100644 --- a/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c +++ b/drivers/gpu/drm/i915/display/intel_crtc_state_dump.c @@ -50,16 +50,6 @@ intel_dump_infoframe(struct drm_i915_private *i915, hdmi_infoframe_log(KERN_DEBUG, i915->drm.dev, frame); } -static void -intel_dump_buffer(const char *prefix, const u8 *buf, size_t len) -{ - if (!drm_debug_enabled(DRM_UT_KMS)) - return; - - print_hex_dump(KERN_DEBUG, prefix, DUMP_PREFIX_NONE, - 16, 0, buf, len, false); -} - #define OUTPUT_TYPE(x) [INTEL_OUTPUT_ ## x] = #x static const char * const output_type_str[] = { @@ -293,8 +283,8 @@ void intel_crtc_state_dump(const struct intel_crtc_state *pipe_config, drm_dp_as_sdp_log(&p, &pipe_config->infoframes.as_sdp); if (pipe_config->has_audio) - intel_dump_buffer("ELD: ", pipe_config->eld, - drm_eld_size(pipe_config->eld)); + drm_print_hex_dump(&p, "ELD: ", pipe_config->eld, + drm_eld_size(pipe_config->eld)); drm_printf(&p, "vrr: %s, vmin: %d, vmax: %d, pipeline full: %d, guardband: %d flipline: %d, vmin vblank: %d, vmax vblank: %d\n", str_yes_no(pipe_config->vrr.enable), -- 2.39.5 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 2/3] drm/i915/display: use drm_print_hex_dump() for crtc state dump 2024-12-05 9:49 ` [PATCH 2/3] drm/i915/display: use drm_print_hex_dump() for crtc state dump Jani Nikula @ 2024-12-05 13:16 ` Andi Shyti 2024-12-05 13:32 ` Jani Nikula 0 siblings, 1 reply; 9+ messages in thread From: Andi Shyti @ 2024-12-05 13:16 UTC (permalink / raw) To: Jani Nikula; +Cc: dri-devel, intel-gfx, intel-xe Hi Jani, On Thu, Dec 05, 2024 at 11:49:34AM +0200, Jani Nikula wrote: > Use the drm_printer based printer to get the device specific printing of > the hex dump. > > Signed-off-by: Jani Nikula <jani.nikula@intel.com> ... > -static void > -intel_dump_buffer(const char *prefix, const u8 *buf, size_t len) > -{ > - if (!drm_debug_enabled(DRM_UT_KMS)) > - return; We lose this check now, anyway, Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com> Thanks, Andi ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH 2/3] drm/i915/display: use drm_print_hex_dump() for crtc state dump 2024-12-05 13:16 ` Andi Shyti @ 2024-12-05 13:32 ` Jani Nikula 0 siblings, 0 replies; 9+ messages in thread From: Jani Nikula @ 2024-12-05 13:32 UTC (permalink / raw) To: Andi Shyti; +Cc: dri-devel, intel-gfx, intel-xe On Thu, 05 Dec 2024, Andi Shyti <andi.shyti@linux.intel.com> wrote: > Hi Jani, > > On Thu, Dec 05, 2024 at 11:49:34AM +0200, Jani Nikula wrote: >> Use the drm_printer based printer to get the device specific printing of >> the hex dump. >> >> Signed-off-by: Jani Nikula <jani.nikula@intel.com> > > ... > >> -static void >> -intel_dump_buffer(const char *prefix, const u8 *buf, size_t len) >> -{ >> - if (!drm_debug_enabled(DRM_UT_KMS)) >> - return; > > We lose this check now, anyway, That now depends on the drm_printer, as it should. Moreover, intel_crtc_state_dump() already has that check, so this is completely redundant. > Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com> Thanks, Jani. > > Thanks, > Andi -- Jani Nikula, Intel ^ permalink raw reply [flat|nested] 9+ messages in thread
[parent not found: <a536050b5f9dc2d7de32d29766c98477f58d746c.1733392101.git.jani.nikula@intel.com>]
* Re: [PATCH 3/3] drm/i915/display: use drm_print_hex_dump() for buffer mismatch dumps [not found] ` <a536050b5f9dc2d7de32d29766c98477f58d746c.1733392101.git.jani.nikula@intel.com> @ 2024-12-05 13:17 ` Andi Shyti 0 siblings, 0 replies; 9+ messages in thread From: Andi Shyti @ 2024-12-05 13:17 UTC (permalink / raw) To: Jani Nikula; +Cc: dri-devel, intel-gfx, intel-xe Hi Jani, On Thu, Dec 05, 2024 at 11:49:35AM +0200, Jani Nikula wrote: > Use the drm_printer based printer to get the device specific printing of > the hex dump, and avoid the manual loglevel hacking. > > Signed-off-by: Jani Nikula <jani.nikula@intel.com> Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com> Thanks, Andi ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2024-12-10 12:33 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-05 9:49 [PATCH 0/3] drm: add drm_printer based hex dumper and use it Jani Nikula
2024-12-05 9:49 ` [PATCH 1/3] drm/print: add drm_print_hex_dump() Jani Nikula
2024-12-05 13:12 ` Andi Shyti
2024-12-10 12:33 ` Jani Nikula
2024-12-09 11:02 ` Jani Nikula
2024-12-05 9:49 ` [PATCH 2/3] drm/i915/display: use drm_print_hex_dump() for crtc state dump Jani Nikula
2024-12-05 13:16 ` Andi Shyti
2024-12-05 13:32 ` Jani Nikula
[not found] ` <a536050b5f9dc2d7de32d29766c98477f58d746c.1733392101.git.jani.nikula@intel.com>
2024-12-05 13:17 ` [PATCH 3/3] drm/i915/display: use drm_print_hex_dump() for buffer mismatch dumps Andi Shyti
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).