Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 27528c66 authored by Lyude's avatar Lyude Committed by Daniel Vetter
Browse files

drm: Add ratelimited versions of the DRM_DEBUG* macros



There's a couple of places where this would be useful for drivers (such
as reporting DP aux transaction timeouts).

Signed-off-by: default avatarLyude <cpaul@redhat.com>
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1470443443-27252-7-git-send-email-cpaul@redhat.com
parent cfc5adea
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
@@ -232,6 +232,36 @@ void drm_err(const char *format, ...);
			drm_ut_debug_printk(__func__, fmt, ##args);	\
	} while (0)

#define _DRM_DEFINE_DEBUG_RATELIMITED(level, fmt, args...)		\
	do {								\
		if (unlikely(drm_debug & DRM_UT_ ## level)) {		\
			static DEFINE_RATELIMIT_STATE(			\
				_rs,					\
				DEFAULT_RATELIMIT_INTERVAL,		\
				DEFAULT_RATELIMIT_BURST);		\
									\
			if (__ratelimit(&_rs)) {			\
				drm_ut_debug_printk(__func__, fmt,	\
						    ##args);		\
			}						\
		}							\
	} while (0)

/**
 * Rate limited debug output. Like DRM_DEBUG() but won't flood the log.
 *
 * \param fmt printf() like format string.
 * \param arg arguments
 */
#define DRM_DEBUG_RATELIMITED(fmt, args...)				\
	_DRM_DEFINE_DEBUG_RATELIMITED(CORE, fmt, ##args)
#define DRM_DEBUG_DRIVER_RATELIMITED(fmt, args...)			\
	_DRM_DEFINE_DEBUG_RATELIMITED(DRIVER, fmt, ##args)
#define DRM_DEBUG_KMS_RATELIMITED(fmt, args...)				\
	_DRM_DEFINE_DEBUG_RATELIMITED(KMS, fmt, ##args)
#define DRM_DEBUG_PRIME_RATELIMITED(fmt, args...)			\
	_DRM_DEFINE_DEBUG_RATELIMITED(PRIME, fmt, ##args)

/*@}*/

/***********************************************************************/