Jani Nikula
876905b8fe
drm/print: convert debug category macros into an enum
...
Mostly for improved documentation, convert the debug category macros
into an enum. Drop unused DRM_UT_NONE. Document previously undocumented
categories.
Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com >
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Acked-by: Sean Paul <sean@poorly.run >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/96582479e7829d92b89adb805f829e23043ca85c.1572258936.git.jani.nikula@intel.com
2019-11-14 14:08:57 +02:00
Jani Nikula
99acf4716f
drm/print: underscore prefix functions that should be private to print
...
We don't want people calling the functions directly. No functional
changes.
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com >
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Acked-by: Sean Paul <sean@poorly.run >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/6b236ed4d2e6d2987eaaeb9cb737f9c3699281cc.1572258936.git.jani.nikula@intel.com
2019-11-14 14:08:42 +02:00
Jani Nikula
9f0ac02841
drm/print: rename drm_debug to __drm_debug to discourage use
...
drm_debug_enabled() is the way to check. __drm_debug is now reserved for
drm print code only. No functional changes.
v2: Rebase on move unlikely() to drm_debug_enabled()
Acked-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Acked-by: Ville Syrjälä <ville.syrjala@linux.intel.com >
Acked-by: Sean Paul <sean@poorly.run >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/840ff7292d1a39512bac2fcb1f45de9d50694bf1.1572258936.git.jani.nikula@intel.com
2019-11-14 14:08:41 +02:00
Jani Nikula
f0a8f533ad
drm/print: add drm_debug_enabled()
...
Add helper to check if a drm debug category is enabled. Convert drm core
to use it. No functional changes.
v2: Move unlikely() to drm_debug_enabled() (Eric)
v3: Keep unlikely() when combined with other conditions (Eric)
Cc: Eric Engestrom <eric@engestrom.ch >
Acked-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20191001140614.26909-1-jani.nikula@intel.com
2019-10-02 16:28:55 +03:00
Jani Nikula
959b077f26
drm/print: move drm_debug variable to drm_print.[ch]
...
Move drm_debug variable declaration and definition to where they are
relevant and needed. No functional changes.
Acked-by: Alex Deucher <alexander.deucher@amd.com >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Signed-off-by: Jani Nikula <jani.nikula@intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/71a566c68883b6e6c61414cd9f7c36c84015edb1.1569329774.git.jani.nikula@intel.com
2019-10-02 16:28:24 +03:00
Gerd Hoffmann
141f6357f4
drm: tweak drm_print_bits()
...
There is little reason for the from/to logic, printing a subset of
the bits can be done by simply shifting/masking value if needed.
Also use for_each_set_bit().
Suggested-by: Jani Nikula <jani.nikula@linux.intel.com >
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Reviewed-by: Jani Nikula <jani.nikula@intel.com >
Acked-by: Sean Paul <sean@poorly.run >
Link: http://patchwork.freedesktop.org/patch/msgid/20190923065814.4797-1-kraxel@redhat.com
2019-09-24 09:57:21 +02:00
Gerd Hoffmann
2dc5d44ccc
drm: add drm_print_bits
...
New helper to print named bits of some value (think flags fields).
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com >
Acked-by: Thomas Zimmermann <tzimmermann@suse.de >
Link: http://patchwork.freedesktop.org/patch/msgid/20190904054740.20817-2-kraxel@redhat.com
2019-09-10 08:53:08 +02:00
Lyude Paul
0de54fb2d0
drm/print: Add drm_err_printer()
...
A simple convienence function that returns a drm_printer which prints
using pr_err()
Changes since v1:
* Make __drm_printfn_err() more consistent with DRM_ERROR() - danvet
Cc: Juston Li <juston.li@intel.com >
Cc: Imre Deak <imre.deak@intel.com >
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com >
Cc: Harry Wentland <hwentlan@amd.com >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Signed-off-by: Lyude Paul <lyude@redhat.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20190903204645.25487-6-lyude@redhat.com
2019-09-03 19:29:02 -04:00
Sam Ravnborg
0500c04ea1
drm: drop use of drmP.h in drm/*
...
The use of the drmP.h header file is deprecated.
Remove use from all files in drm/*
so people do not look there and follow a bad example.
Build tested allyesconfig,allmodconfig on x86, arm etc.
Including alpha that is as always more challenging than
the rest.
Signed-off-by: Sam Ravnborg <sam@ravnborg.org >
Acked-by: Daniel Vetter <daniel@ffwll.ch >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: Maxime Ripard <maxime.ripard@bootlin.com >
Cc: Sean Paul <sean@poorly.run >
Cc: David Airlie <airlied@linux.ie >
Link: https://patchwork.freedesktop.org/patch/msgid/20190526173535.32701-8-sam@ravnborg.org
2019-05-27 18:07:03 +02:00
Eric Anholt
5f513cc89e
drm: Add a helper function for printing a debugfs_regset32.
...
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.
v2: Add some kerneldoc for the function (requested by danvet)
Signed-off-by: Eric Anholt <eric@anholt.net >
Link: https://patchwork.freedesktop.org/patch/msgid/20190220210343.28157-1-eric@anholt.net
Reviewed-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com > (v1)
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
2019-04-01 10:44:34 -07:00
Jordan Crouse
5dc634bdbf
drm: Add puts callback for the coredump printer
...
Add a puts function for the coredump printer to bypass printf()
for constant strings for a speed boost. Reorganize the
coredump printf callback to share as much code as possible.
v2: Try to reuse code between print and puts as suggested by
Chris Wilson
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org >
Signed-off-by: Rob Clark <robdclark@gmail.com >
2018-07-30 08:49:41 -04:00
Jordan Crouse
4538d73245
drm: Add a -puts() function for the seq_file printer
...
Add a puts() function to use seq_puts() to help speed up
up print time for constant strings.
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org >
Signed-off-by: Rob Clark <robdclark@gmail.com >
2018-07-30 08:49:38 -04:00
Jordan Crouse
63f4cc015b
drm: Add drm_puts() to complement drm_printf()
...
Add drm_puts() for a much faster path to print constant strings
into a drm_printer object with memcpy and friends. This can
have seconds off of really large outputs such as GPU dumps.
If the drm_printer object supports a custom puts function then
use that otherwise fall back to the slower legacy printf call.
v2: Add documentation for drm_puts() per Daniel Vetter
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org >
[robclark fix minor htmldocs warning]
Signed-off-by: Rob Clark <robdclark@gmail.com >
2018-07-30 08:49:35 -04:00
Jordan Crouse
cfc57a18a3
drm: drm_printer: Add printer for devcoredump
...
Add a drm printer suitable for use with the read callback for
devcoredump or other suitable buffer based output format that
isn't otherwise covered by seq_file.
v2: Add improved documentation per Daniel Vetter
Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org >
Signed-off-by: Rob Clark <robdclark@gmail.com >
2018-07-30 08:49:31 -04:00
Joe Perches
db87086492
drm: Reduce object size of DRM_DEV_<LEVEL> uses
...
These macros are similar to the DRM_<LEVEL> with the addition
of a struct device * to the arguments.
Convert the single drm_dev_printk function into 2 separate functions.
drm_dev_printk with a KERN_<LEVEL> * for generic use and drm_dev_dbg
for conditional masked use.
Remove the __func__ argument and use __builtin_return_address(0) to be
similar to the DRM_<LEVEL> macros uses.
Convert the DRM_DEV_<LEVEL> macros to remove now unnecessary arguments
and use a consistent style.
These macros are rarely used in the generic gpu/drm code so the code
size does not change much for a defconfig, but when more drivers are
enabled, there is ~4k savings.
Many of these macros have no existing use at all.
$ size -t drivers/gpu/drm/built-in.a | tail -1
1877530 44651 995 1923176 1d5868 (TOTALS)
$ size -t drivers/gpu/drm/built-in.a | tail -1
1877527 44651 995 1923173 1d5865 (TOTALS)
$ size -t drivers/gpu/drm/built-in.a | tail -1
17166750 2689238 108352 19964340 130a1b4 (TOTALS)
$ size -t drivers/gpu/drm/built-in.a | tail -1
17168888 2691734 108352 19968974 130b3ce
(TOTALS)
Signed-off-by: Joe Perches <joe@perches.com >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/e5c164946e15375ac71b69b75f296efdf0b76e6d.1521233717.git.joe@perches.com
2018-03-19 15:15:42 +01:00
Joe Perches
99a954874e
drm: Reduce object size of DRM_ERROR and DRM_DEBUG uses
...
drm_printk is used for both DRM_ERROR and DRM_DEBUG with unnecessary
arguments that can be removed by creating separate functins.
Create specific functions for these calls to reduce x86/64 defconfig
size by ~20k.
Modify the existing macros to use the specific calls.
new:
$ size -t drivers/gpu/drm/built-in.a | tail -1
1876562 44542 995 1922099
1d5433 (TOTALS)
old:
$ size -t drivers/gpu/drm/built-in.a | tail -1
1897565 44542 995 1943102 1da63e (TOTALS)
Miscellanea:
o intel_display requires a change to use the specific calls.
Signed-off-by: Joe Perches <joe@perches.com >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: https://patchwork.freedesktop.org/patch/msgid/016b5cb84cede20fd0f91ed6965421d99fd5f2ce.1520978414.git.joe@perches.com
2018-03-16 08:41:57 +01:00
Chris Wilson
e2b155e992
drm/printer: Add drm_vprintf()
...
Simple va_args equivalent to the existing drm_printf() for use with the
drm_printer.
v2: Fixup kerneldoc to match final parameter names.
v3: Turn it into a kerneldoc comment
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk >
Cc: Rob Clark <robdclark@gmail.com >
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Cc: Dave Airlie <airlied@redhat.com >
Acked-by: Dave Airlie <airlied@redhat.com >
Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com >
Link: https://patchwork.freedesktop.org/patch/msgid/20171123084051.30203-1-chris@chris-wilson.co.uk
2017-11-23 12:31:49 +02:00
Chris Wilson
79a5ad2fdb
drm: Enable pr_debug() for drm_printer
...
pr_debug() is conditionally compiled and requires either
dynamic-debugging to be enabled or for the code to opt-in using #define
DEBUG. Since drm_print provides a central debugging facility using
pr_debug(), make sure it will always produce output.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk >
Cc: Rob Clark <robdclark@gmail.com >
Cc: Daniel Vetter <daniel.vetter@ffwll.ch >
Signed-off-by: Sean Paul <seanpaul@chromium.org >
Link: https://patchwork.freedesktop.org/patch/msgid/20171027110602.31519-1-chris@chris-wilson.co.uk
2017-10-30 16:59:21 -04:00
Haneen Mohammed
02c9656b2f
drm: Move debug macros out of drmP.h
...
This patch extract DRM_* debug macros from drmP.h to drm_print.h and
move printing related functions used by these macros from drm_drv.[hc]
to drm_print.[hc].
Signed-off-by: Haneen Mohammed <hamohammed.sa@gmail.com >
Signed-off-by: Sean Paul <seanpaul@chromium.org >
Link: https://patchwork.freedesktop.org/patch/msgid/4020bc7c5ffad2af516919f78bb837c7f366b82b.1508297716.git.hamohammed.sa@gmail.com
2017-10-20 13:14:48 -04:00
Joe Perches
3c6d6e0fbf
drm: drm_printer: add __printf validation
...
drm_printf does not currently use the compiler to verify
format and arguments. Make it do so.
Miscellanea:
o Add appropriate #include files for __printf and struct va_format
o Convert dev_printk to dev_info
Signed-off-by: Joe Perches <joe@perches.com >
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch >
Link: http://patchwork.freedesktop.org/patch/msgid/133858f214e9b90f92bb8eb44c6b1dc04429933d.1487201526.git.joe@perches.com
2017-02-26 21:43:08 +01:00
Daniel Vetter
3d387d923c
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
2016-12-30 11:43:40 +01:00
Daniel Vetter
2d5e836de7
drm/print: Move kerneldoc next to definition
...
kerneldoc expects the comment next to definitions, otherwise it can't
pick up exported vs. internal stuff.
This fixes a warning from the doc build done with:
$ make DOCBOOKS="" htmldocs
Fixes: d8187177b0
("drm: add helper for printing to log or seq_file")
Cc: Rob Clark <robdclark@gmail.com >
Cc: Sean Paul <seanpaul@chromium.org >
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/20161114115825.22050-8-daniel.vetter@ffwll.ch
2016-11-15 12:55:24 +01:00
Rob Clark
d8187177b0
drm: add helper for printing to log or seq_file
...
Sometimes it is nice not to duplicate equivalent printk() and
seq_printf() code.
v2: simplify things w/ va_format, and use dev_printk, docs
Signed-off-by: Rob Clark <robdclark@gmail.com >
Signed-off-by: Sean Paul <seanpaul@chromium.org >
Link: http://patchwork.freedesktop.org/patch/msgid/1478358492-30738-3-git-send-email-robdclark@gmail.com
2016-11-08 16:38:03 -05:00