diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2016-12-28 17:42:09 +0100 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2016-12-30 11:43:40 +0100 |
commit | 3d387d923c18afbacef8f14ccaa2ace2a297df74 (patch) | |
tree | 45e4cc2a822b06f5baefa71e32fcc51766b96893 /include/drm | |
parent | ae774e2c68d19da7a8e982889a5a1684cac93c78 (diff) |
drm/printer: add debug printer
Useful for dumping lots of data into dmesg, e.g. drm_mm.
v2: Fixup export_symbol line, I misplaced a hunk (Chris).
Cc: Rob Clark <robdclark@gmail.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1482943330-11592-1-git-send-email-daniel.vetter@ffwll.ch
Diffstat (limited to 'include/drm')
-rw-r--r-- | include/drm/drm_print.h | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h index 1adf84aea622..e9d0ba20089c 100644 --- a/include/drm/drm_print.h +++ b/include/drm/drm_print.h @@ -60,19 +60,20 @@ /** * struct drm_printer - drm output "stream" - * @printfn: actual output fxn - * @arg: output fxn specific data * * Do not use struct members directly. Use drm_printer_seq_file(), * drm_printer_info(), etc to initialize. And drm_printf() for output. */ struct drm_printer { + /* private: */ void (*printfn)(struct drm_printer *p, struct va_format *vaf); void *arg; + const char *prefix; }; void __drm_printfn_seq_file(struct drm_printer *p, struct va_format *vaf); void __drm_printfn_info(struct drm_printer *p, struct va_format *vaf); +void __drm_printfn_debug(struct drm_printer *p, struct va_format *vaf); void drm_printf(struct drm_printer *p, const char *f, ...); @@ -109,4 +110,19 @@ static inline struct drm_printer drm_info_printer(struct device *dev) return p; } +/** + * drm_debug_printer - construct a &drm_printer that outputs to pr_debug() + * @prefix: debug output prefix + * + * RETURNS: + * The &drm_printer object + */ +static inline struct drm_printer drm_debug_printer(const char *prefix) +{ + struct drm_printer p = { + .printfn = __drm_printfn_debug, + .prefix = prefix + }; + return p; +} #endif /* DRM_PRINT_H_ */ |