On Sun, Sep 04, 2022 at 03:40:59PM -0600, Jim Cromie wrote:
> 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.cro...@gmail.com>

Reviewed-by: Daniel Vetter <daniel.vet...@ffwll.ch>

I guess this would also be a good patch to apply already, so we reduce the
patch set size somewhat?
-Daniel

> ---
>  include/drm/drm_print.h | 22 +++++++++++-----------
>  1 file changed, 11 insertions(+), 11 deletions(-)
> 
> diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h
> index 22fabdeed297..b3b470440e46 100644
> --- a/include/drm/drm_print.h
> +++ b/include/drm/drm_print.h
> @@ -279,49 +279,49 @@ enum drm_debug_category {
>        * @DRM_UT_CORE: Used in the generic drm code: drm_ioctl.c, drm_mm.c,
>        * drm_memory.c, ...
>        */
> -     DRM_UT_CORE             = 0x01,
> +     DRM_UT_CORE,
>       /**
>        * @DRM_UT_DRIVER: Used in the vendor specific part of the driver: i915,
>        * radeon, ... macro.
>        */
> -     DRM_UT_DRIVER           = 0x02,
> +     DRM_UT_DRIVER,
>       /**
>        * @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            = 0x08,
> +     DRM_UT_PRIME,
>       /**
>        * @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              = 0x20,
> +     DRM_UT_VBL,
>       /**
>        * @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            = 0x80,
> +     DRM_UT_LEASE,
>       /**
>        * @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           = 0x200,
> +     DRM_UT_DRMRES
>  };
>  
>  static inline bool drm_debug_enabled(enum drm_debug_category category)
>  {
> -     return unlikely(__drm_debug & category);
> +     return unlikely(__drm_debug & BIT(category));
>  }
>  
>  /*
> -- 
> 2.37.2
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch

Reply via email to