drm_print: condense enum drm_debug_category

enum drm_debug_category has 10 categories, but is initialized with
bitmasks which require 10 bits of underlying storage.  By using
natural enumeration, and moving the BIT(cat) into drm_debug_enabled(),
the enum fits in 4 bits, allowing the category to be represented
directly in pr_debug callsites, via the ddebug.class_id field.

While this slightly pessimizes the bit-test in drm_debug_enabled(),
using dyndbg with JUMP_LABEL will avoid the function entirely.

NOTE: this change forecloses the possibility of doing:

  drm_dbg(DRM_UT_CORE|DRM_UT_KMS, "weird 2-cat experiment")

but thats already strongly implied by the use of the enum itself; its
not a normal enum if it can be 2 values simultaneously.

Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
Link: https://lore.kernel.org/r/20220912052852.1123868-2-jim.cromie@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Jim Cromie 2022-09-11 23:28:44 -06:00 committed by Greg Kroah-Hartman
parent 19029f3f47
commit 0406faf25f

View File

@ -279,49 +279,49 @@ enum drm_debug_category {
* @DRM_UT_CORE: Used in the generic drm code: drm_ioctl.c, drm_mm.c, * @DRM_UT_CORE: Used in the generic drm code: drm_ioctl.c, drm_mm.c,
* drm_memory.c, ... * drm_memory.c, ...
*/ */
DRM_UT_CORE = 0x01, DRM_UT_CORE,
/** /**
* @DRM_UT_DRIVER: Used in the vendor specific part of the driver: i915, * @DRM_UT_DRIVER: Used in the vendor specific part of the driver: i915,
* radeon, ... macro. * radeon, ... macro.
*/ */
DRM_UT_DRIVER = 0x02, DRM_UT_DRIVER,
/** /**
* @DRM_UT_KMS: Used in the modesetting code. * @DRM_UT_KMS: Used in the modesetting code.
*/ */
DRM_UT_KMS = 0x04, DRM_UT_KMS,
/** /**
* @DRM_UT_PRIME: Used in the prime code. * @DRM_UT_PRIME: Used in the prime code.
*/ */
DRM_UT_PRIME = 0x08, DRM_UT_PRIME,
/** /**
* @DRM_UT_ATOMIC: Used in the atomic code. * @DRM_UT_ATOMIC: Used in the atomic code.
*/ */
DRM_UT_ATOMIC = 0x10, DRM_UT_ATOMIC,
/** /**
* @DRM_UT_VBL: Used for verbose debug message in the vblank code. * @DRM_UT_VBL: Used for verbose debug message in the vblank code.
*/ */
DRM_UT_VBL = 0x20, DRM_UT_VBL,
/** /**
* @DRM_UT_STATE: Used for verbose atomic state debugging. * @DRM_UT_STATE: Used for verbose atomic state debugging.
*/ */
DRM_UT_STATE = 0x40, DRM_UT_STATE,
/** /**
* @DRM_UT_LEASE: Used in the lease code. * @DRM_UT_LEASE: Used in the lease code.
*/ */
DRM_UT_LEASE = 0x80, DRM_UT_LEASE,
/** /**
* @DRM_UT_DP: Used in the DP code. * @DRM_UT_DP: Used in the DP code.
*/ */
DRM_UT_DP = 0x100, DRM_UT_DP,
/** /**
* @DRM_UT_DRMRES: Used in the drm managed resources code. * @DRM_UT_DRMRES: Used in the drm managed resources code.
*/ */
DRM_UT_DRMRES = 0x200, DRM_UT_DRMRES
}; };
static inline bool drm_debug_enabled(enum drm_debug_category category) static inline bool drm_debug_enabled(enum drm_debug_category category)
{ {
return unlikely(__drm_debug & category); return unlikely(__drm_debug & BIT(category));
} }
/* /*