lkml.org 
[lkml]   [2019]   [Mar]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH 1/7] drm: Add a helper function for printing a debugfs_regset32.
    From
    Date
    Hi,

    Le mercredi 20 février 2019 à 13:03 -0800, Eric Anholt a écrit :
    > The debugfs_regset32 is nice to use for reducing boilerplate in
    > dumping a bunch of regs in debugfs, but we also want to be able to
    > print to dmesg them at runtime for driver debugging. drm_printer lets
    > us format debugfs and the printk the same way.

    Looks good to me!

    Reviewed-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>

    Cheers,

    Paul

    > Signed-off-by: Eric Anholt <eric@anholt.net>
    > ---
    > drivers/gpu/drm/drm_print.c | 16 ++++++++++++++++
    > include/drm/drm_print.h | 2 ++
    > 2 files changed, 18 insertions(+)
    >
    > diff --git a/drivers/gpu/drm/drm_print.c b/drivers/gpu/drm/drm_print.c
    > index 0e7fc3e7dfb4..5ecc0f04cd0c 100644
    > --- a/drivers/gpu/drm/drm_print.c
    > +++ b/drivers/gpu/drm/drm_print.c
    > @@ -253,3 +253,19 @@ void drm_err(const char *format, ...)
    > va_end(args);
    > }
    > EXPORT_SYMBOL(drm_err);
    > +
    > +void drm_print_regset32(struct drm_printer *p, struct debugfs_regset32 *regset)
    > +{
    > + int namelen = 0;
    > + int i;
    > +
    > + for (i = 0; i < regset->nregs; i++)
    > + namelen = max(namelen, (int)strlen(regset->regs[i].name));
    > +
    > + for (i = 0; i < regset->nregs; i++) {
    > + drm_printf(p, "%*s = 0x%08x\n",
    > + namelen, regset->regs[i].name,
    > + readl(regset->base + regset->regs[i].offset));
    > + }
    > +}
    > +EXPORT_SYMBOL(drm_print_regset32);
    > diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h
    > index afbc3beef089..3a4247319e63 100644
    > --- a/include/drm/drm_print.h
    > +++ b/include/drm/drm_print.h
    > @@ -30,6 +30,7 @@
    > #include <linux/printk.h>
    > #include <linux/seq_file.h>
    > #include <linux/device.h>
    > +#include <linux/debugfs.h>
    >
    > /**
    > * DOC: print
    > @@ -84,6 +85,7 @@ void __drm_printfn_debug(struct drm_printer *p, struct va_format *vaf);
    > __printf(2, 3)
    > void drm_printf(struct drm_printer *p, const char *f, ...);
    > void drm_puts(struct drm_printer *p, const char *str);
    > +void drm_print_regset32(struct drm_printer *p, struct debugfs_regset32 *regset);
    >
    > __printf(2, 0)
    > /**
    --
    Paul Kocialkowski, Bootlin
    Embedded Linux and kernel engineering
    https://bootlin.com

    \
     
     \ /
      Last update: 2019-03-22 11:31    [W:3.373 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site