[PATCH 02/10] drm/print: move enum drm_debug_category etc. earlier in drm_print.h
Luca Coelho
luca at coelho.fi
Tue Jan 30 10:11:36 UTC 2024
On Tue, 2024-01-16 at 15:07 +0200, Jani Nikula wrote:
> Avoid forward declarations in subsequent changes, but separate this
> movement to an independent change.
>
> Signed-off-by: Jani Nikula <jani.nikula at intel.com>
> ---
> include/drm/drm_print.h | 190 ++++++++++++++++++++--------------------
> 1 file changed, 95 insertions(+), 95 deletions(-)
>
> diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h
> index 1040213d02a4..b8b4cb9bb878 100644
> --- a/include/drm/drm_print.h
> +++ b/include/drm/drm_print.h
> @@ -69,6 +69,101 @@ extern unsigned long __drm_debug;
> * }
> */
>
> +/**
> + * enum drm_debug_category - The DRM debug categories
> + *
> + * Each of the DRM debug logging macros use a specific category, and the logging
> + * is filtered by the drm.debug module parameter. This enum specifies the values
> + * for the interface.
> + *
> + * Each DRM_DEBUG_<CATEGORY> macro logs to DRM_UT_<CATEGORY> category, except
> + * DRM_DEBUG() logs to DRM_UT_CORE.
> + *
> + * Enabling verbose debug messages is done through the drm.debug parameter, each
> + * category being enabled by a bit:
> + *
> + * - drm.debug=0x1 will enable CORE messages
> + * - drm.debug=0x2 will enable DRIVER messages
> + * - drm.debug=0x3 will enable CORE and DRIVER messages
> + * - ...
> + * - drm.debug=0x1ff will enable all messages
> + *
> + * An interesting feature is that it's possible to enable verbose logging at
> + * run-time by echoing the debug value in its sysfs node::
> + *
> + * # echo 0xf > /sys/module/drm/parameters/debug
> + *
> + */
> +enum drm_debug_category {
> + /* These names must match those in DYNAMIC_DEBUG_CLASSBITS */
> + /**
> + * @DRM_UT_CORE: Used in the generic drm code: drm_ioctl.c, drm_mm.c,
> + * drm_memory.c, ...
> + */
> + DRM_UT_CORE,
> + /**
> + * @DRM_UT_DRIVER: Used in the vendor specific part of the driver: i915,
> + * radeon, ... macro.
> + */
> + DRM_UT_DRIVER,
> + /**
> + * @DRM_UT_KMS: Used in the modesetting code.
> + */
> + DRM_UT_KMS,
> + /**
> + * @DRM_UT_PRIME: Used in the prime code.
> + */
> + DRM_UT_PRIME,
> + /**
> + * @DRM_UT_ATOMIC: Used in the atomic code.
> + */
> + DRM_UT_ATOMIC,
> + /**
> + * @DRM_UT_VBL: Used for verbose debug message in the vblank code.
> + */
> + DRM_UT_VBL,
> + /**
> + * @DRM_UT_STATE: Used for verbose atomic state debugging.
> + */
> + DRM_UT_STATE,
> + /**
> + * @DRM_UT_LEASE: Used in the lease code.
> + */
> + DRM_UT_LEASE,
> + /**
> + * @DRM_UT_DP: Used in the DP code.
> + */
> + DRM_UT_DP,
> + /**
> + * @DRM_UT_DRMRES: Used in the drm managed resources code.
> + */
> + DRM_UT_DRMRES
> +};
> +
> +static inline bool drm_debug_enabled_raw(enum drm_debug_category category)
> +{
> + return unlikely(__drm_debug & BIT(category));
> +}
> +
> +#define drm_debug_enabled_instrumented(category) \
> + ({ \
> + pr_debug("todo: is this frequent enough to optimize ?\n"); \
> + drm_debug_enabled_raw(category); \
> + })
> +
> +#if defined(CONFIG_DRM_USE_DYNAMIC_DEBUG)
> +/*
> + * the drm.debug API uses dyndbg, so each drm_*dbg macro/callsite gets
> + * a descriptor, and only enabled callsites are reachable. They use
> + * the private macro to avoid re-testing the enable-bit.
> + */
> +#define __drm_debug_enabled(category) true
> +#define drm_debug_enabled(category) drm_debug_enabled_instrumented(category)
> +#else
> +#define __drm_debug_enabled(category) drm_debug_enabled_raw(category)
> +#define drm_debug_enabled(category) drm_debug_enabled_raw(category)
> +#endif
> +
> /**
> * struct drm_printer - drm output "stream"
> *
> @@ -255,101 +350,6 @@ static inline struct drm_printer drm_err_printer(struct drm_device *drm,
> return p;
> }
>
> -/**
> - * enum drm_debug_category - The DRM debug categories
> - *
> - * Each of the DRM debug logging macros use a specific category, and the logging
> - * is filtered by the drm.debug module parameter. This enum specifies the values
> - * for the interface.
> - *
> - * Each DRM_DEBUG_<CATEGORY> macro logs to DRM_UT_<CATEGORY> category, except
> - * DRM_DEBUG() logs to DRM_UT_CORE.
> - *
> - * Enabling verbose debug messages is done through the drm.debug parameter, each
> - * category being enabled by a bit:
> - *
> - * - drm.debug=0x1 will enable CORE messages
> - * - drm.debug=0x2 will enable DRIVER messages
> - * - drm.debug=0x3 will enable CORE and DRIVER messages
> - * - ...
> - * - drm.debug=0x1ff will enable all messages
> - *
> - * An interesting feature is that it's possible to enable verbose logging at
> - * run-time by echoing the debug value in its sysfs node::
> - *
> - * # echo 0xf > /sys/module/drm/parameters/debug
> - *
> - */
> -enum drm_debug_category {
> - /* These names must match those in DYNAMIC_DEBUG_CLASSBITS */
> - /**
> - * @DRM_UT_CORE: Used in the generic drm code: drm_ioctl.c, drm_mm.c,
> - * drm_memory.c, ...
> - */
> - DRM_UT_CORE,
> - /**
> - * @DRM_UT_DRIVER: Used in the vendor specific part of the driver: i915,
> - * radeon, ... macro.
> - */
> - DRM_UT_DRIVER,
> - /**
> - * @DRM_UT_KMS: Used in the modesetting code.
> - */
> - DRM_UT_KMS,
> - /**
> - * @DRM_UT_PRIME: Used in the prime code.
> - */
> - DRM_UT_PRIME,
> - /**
> - * @DRM_UT_ATOMIC: Used in the atomic code.
> - */
> - DRM_UT_ATOMIC,
> - /**
> - * @DRM_UT_VBL: Used for verbose debug message in the vblank code.
> - */
> - DRM_UT_VBL,
> - /**
> - * @DRM_UT_STATE: Used for verbose atomic state debugging.
> - */
> - DRM_UT_STATE,
> - /**
> - * @DRM_UT_LEASE: Used in the lease code.
> - */
> - DRM_UT_LEASE,
> - /**
> - * @DRM_UT_DP: Used in the DP code.
> - */
> - DRM_UT_DP,
> - /**
> - * @DRM_UT_DRMRES: Used in the drm managed resources code.
> - */
> - DRM_UT_DRMRES
> -};
> -
> -static inline bool drm_debug_enabled_raw(enum drm_debug_category category)
> -{
> - return unlikely(__drm_debug & BIT(category));
> -}
> -
> -#define drm_debug_enabled_instrumented(category) \
> - ({ \
> - pr_debug("todo: is this frequent enough to optimize ?\n"); \
> - drm_debug_enabled_raw(category); \
> - })
> -
> -#if defined(CONFIG_DRM_USE_DYNAMIC_DEBUG)
> -/*
> - * the drm.debug API uses dyndbg, so each drm_*dbg macro/callsite gets
> - * a descriptor, and only enabled callsites are reachable. They use
> - * the private macro to avoid re-testing the enable-bit.
> - */
> -#define __drm_debug_enabled(category) true
> -#define drm_debug_enabled(category) drm_debug_enabled_instrumented(category)
> -#else
> -#define __drm_debug_enabled(category) drm_debug_enabled_raw(category)
> -#define drm_debug_enabled(category) drm_debug_enabled_raw(category)
> -#endif
> -
> /*
> * struct device based logging
> *
Reviewed-by: Luca Coelho <luciano.coelho at intel.com>
--
Cheers,
Luca.
More information about the Intel-xe
mailing list