* [PATCH v2 0/3] drm: Move debug macros out of drmP.h
@ 2017-10-12 2:25 Haneen Mohammed
2017-10-12 2:32 ` [PATCH v2 1/3] drm: Extract drm_debug.[hc] Haneen Mohammed
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Haneen Mohammed @ 2017-10-12 2:25 UTC (permalink / raw)
To: dri-devel; +Cc: gregkh, outreachy-kernel, Daniel Vetter
This patchset move debug macros from drmP.h into debug.h and move
printting related functions from drm_drv.[hc] to drm_debug.[hc].
In addition, it fixes old comment style and add kerneldoc comments
for exported functions to avoid kerneldoc warning.
Changes in v2:
- Place kerneldoc include directives in drm-internals.rst
- Fix kerneldoc comments in drm_debug.h
- include patch 3 to add kerneldoc comments to exported functions
Haneen Mohammed (3):
drm: Extract drm_debug.[hc]
drm: Update old comment style
drm/debug: Add missing kerneldoc comments to exported functions
Documentation/gpu/drm-internals.rst | 8 ++
drivers/gpu/drm/Makefile | 2 +-
drivers/gpu/drm/drm_debug.c | 92 ++++++++++++++++++
drivers/gpu/drm/drm_drv.c | 47 ---------
include/drm/drmP.h | 149 +----------------------------
include/drm/drm_debug.h | 185 ++++++++++++++++++++++++++++++++++++
include/drm/drm_drv.h | 7 --
7 files changed, 287 insertions(+), 203 deletions(-)
create mode 100644 drivers/gpu/drm/drm_debug.c
create mode 100644 include/drm/drm_debug.h
--
2.7.4
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 1/3] drm: Extract drm_debug.[hc]
2017-10-12 2:25 [PATCH v2 0/3] drm: Move debug macros out of drmP.h Haneen Mohammed
@ 2017-10-12 2:32 ` Haneen Mohammed
2017-10-12 10:35 ` Chris Wilson
2017-10-13 1:57 ` kbuild test robot
2017-10-12 2:36 ` [PATCH v2 2/3] drm: Update old comment style Haneen Mohammed
2017-10-12 2:39 ` [PATCH v2 3/3] drm/debug: Add missing kerneldoc comments to exported functions Haneen Mohammed
2 siblings, 2 replies; 9+ messages in thread
From: Haneen Mohammed @ 2017-10-12 2:32 UTC (permalink / raw)
To: dri-devel; +Cc: gregkh, outreachy-kernel, Daniel Vetter
Extract DRM_* debug macros from drmP.h to drm_debug.h and move printting
related functions from drm_drv.[hc] to drm_debug.[hc].
Update kerneldoc include directives accordingly.
Signed-off-by: Haneen Mohammed <hamohammed.sa@gmail.com>
---
Changes in v2:
- Place kerneldoc include directives in drm-internals.rst
Documentation/gpu/drm-internals.rst | 8 ++
drivers/gpu/drm/Makefile | 2 +-
drivers/gpu/drm/drm_debug.c | 75 ++++++++++++++
drivers/gpu/drm/drm_drv.c | 47 ---------
include/drm/drmP.h | 149 +---------------------------
include/drm/drm_debug.h | 193 ++++++++++++++++++++++++++++++++++++
include/drm/drm_drv.h | 7 --
7 files changed, 278 insertions(+), 203 deletions(-)
create mode 100644 drivers/gpu/drm/drm_debug.c
create mode 100644 include/drm/drm_debug.h
diff --git a/Documentation/gpu/drm-internals.rst b/Documentation/gpu/drm-internals.rst
index 5ee9674..c17f7d2 100644
--- a/Documentation/gpu/drm-internals.rst
+++ b/Documentation/gpu/drm-internals.rst
@@ -230,6 +230,14 @@ Printer
.. kernel-doc:: drivers/gpu/drm/drm_print.c
:export:
+Debug Support
+-------------
+
+.. kernel-doc:: include/drm/drm_debug.h
+ :internal:
+
+.. kernel-doc:: drivers/gpu/drm/drm_debug.c
+ :export:
Legacy Support Code
===================
diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile
index a8acc19..d09bd06 100644
--- a/drivers/gpu/drm/Makefile
+++ b/drivers/gpu/drm/Makefile
@@ -3,7 +3,7 @@
# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
drm-y := drm_auth.o drm_bufs.o drm_cache.o \
- drm_context.o drm_dma.o \
+ drm_context.o drm_dma.o drm_debug.o \
drm_file.o drm_gem.o drm_ioctl.o drm_irq.o \
drm_lock.o drm_memory.o drm_drv.o \
drm_scatter.o drm_pci.o \
diff --git a/drivers/gpu/drm/drm_debug.c b/drivers/gpu/drm/drm_debug.c
new file mode 100644
index 0000000..a79593f
--- /dev/null
+++ b/drivers/gpu/drm/drm_debug.c
@@ -0,0 +1,75 @@
+/*
+ * Copyright 2001 VA Linux Systems, Inc., Sunnyvale, California.
+ * All Rights Reserved.
+ *
+ * Author Rickard E. (Rik) Faith <faith@valinux.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+#include <drm/drm_debug.h>
+#include <drm/drmP.h>
+
+#define DRM_PRINTK_FMT "[" DRM_NAME ":%s]%s %pV"
+
+void drm_dev_printk(const struct device *dev, const char *level,
+ unsigned int category, const char *function_name,
+ const char *prefix, const char *format, ...)
+{
+ struct va_format vaf;
+ va_list args;
+
+ if (category != DRM_UT_NONE && !(drm_debug & category))
+ return;
+
+ va_start(args, format);
+ vaf.fmt = format;
+ vaf.va = &args;
+
+ if (dev)
+ dev_printk(level, dev, DRM_PRINTK_FMT, function_name, prefix,
+ &vaf);
+ else
+ printk("%s" DRM_PRINTK_FMT, level, function_name, prefix, &vaf);
+
+ va_end(args);
+}
+EXPORT_SYMBOL(drm_dev_printk);
+
+void drm_printk(const char *level, unsigned int category,
+ const char *format, ...)
+{
+ struct va_format vaf;
+ va_list args;
+
+ if (category != DRM_UT_NONE && !(drm_debug & category))
+ return;
+
+ va_start(args, format);
+ vaf.fmt = format;
+ vaf.va = &args;
+
+ printk("%s" "[" DRM_NAME ":%ps]%s %pV",
+ level, __builtin_return_address(0),
+ strcmp(level, KERN_ERR) == 0 ? " *ERROR*" : "", &vaf);
+
+ va_end(args);
+}
+EXPORT_SYMBOL(drm_printk);
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
index be38ac7..9710c78 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -74,53 +74,6 @@ static bool drm_core_init_complete = false;
static struct dentry *drm_debugfs_root;
-#define DRM_PRINTK_FMT "[" DRM_NAME ":%s]%s %pV"
-
-void drm_dev_printk(const struct device *dev, const char *level,
- unsigned int category, const char *function_name,
- const char *prefix, const char *format, ...)
-{
- struct va_format vaf;
- va_list args;
-
- if (category != DRM_UT_NONE && !(drm_debug & category))
- return;
-
- va_start(args, format);
- vaf.fmt = format;
- vaf.va = &args;
-
- if (dev)
- dev_printk(level, dev, DRM_PRINTK_FMT, function_name, prefix,
- &vaf);
- else
- printk("%s" DRM_PRINTK_FMT, level, function_name, prefix, &vaf);
-
- va_end(args);
-}
-EXPORT_SYMBOL(drm_dev_printk);
-
-void drm_printk(const char *level, unsigned int category,
- const char *format, ...)
-{
- struct va_format vaf;
- va_list args;
-
- if (category != DRM_UT_NONE && !(drm_debug & category))
- return;
-
- va_start(args, format);
- vaf.fmt = format;
- vaf.va = &args;
-
- printk("%s" "[" DRM_NAME ":%ps]%s %pV",
- level, __builtin_return_address(0),
- strcmp(level, KERN_ERR) == 0 ? " *ERROR*" : "", &vaf);
-
- va_end(args);
-}
-EXPORT_SYMBOL(drm_printk);
-
/*
* DRM Minors
* A DRM device can provide several char-dev interfaces on the DRM-Major. Each
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index 7277783a..8186a96 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -77,6 +77,7 @@
#include <drm/drm_prime.h>
#include <drm/drm_pci.h>
#include <drm/drm_file.h>
+#include <drm/drm_debug.h>
#include <drm/drm_debugfs.h>
#include <drm/drm_ioctl.h>
#include <drm/drm_sysfs.h>
@@ -142,154 +143,6 @@ struct pci_controller;
/*@{*/
/***********************************************************************/
-/** \name Macros to make printk easier */
-/*@{*/
-
-#define _DRM_PRINTK(once, level, fmt, ...) \
- do { \
- printk##once(KERN_##level "[" DRM_NAME "] " fmt, \
- ##__VA_ARGS__); \
- } while (0)
-
-#define DRM_INFO(fmt, ...) \
- _DRM_PRINTK(, INFO, fmt, ##__VA_ARGS__)
-#define DRM_NOTE(fmt, ...) \
- _DRM_PRINTK(, NOTICE, fmt, ##__VA_ARGS__)
-#define DRM_WARN(fmt, ...) \
- _DRM_PRINTK(, WARNING, fmt, ##__VA_ARGS__)
-
-#define DRM_INFO_ONCE(fmt, ...) \
- _DRM_PRINTK(_once, INFO, fmt, ##__VA_ARGS__)
-#define DRM_NOTE_ONCE(fmt, ...) \
- _DRM_PRINTK(_once, NOTICE, fmt, ##__VA_ARGS__)
-#define DRM_WARN_ONCE(fmt, ...) \
- _DRM_PRINTK(_once, WARNING, fmt, ##__VA_ARGS__)
-
-/**
- * Error output.
- *
- * \param fmt printf() like format string.
- * \param arg arguments
- */
-#define DRM_DEV_ERROR(dev, fmt, ...) \
- drm_dev_printk(dev, KERN_ERR, DRM_UT_NONE, __func__, " *ERROR*",\
- fmt, ##__VA_ARGS__)
-#define DRM_ERROR(fmt, ...) \
- drm_printk(KERN_ERR, DRM_UT_NONE, fmt, ##__VA_ARGS__)
-
-/**
- * Rate limited error output. Like DRM_ERROR() but won't flood the log.
- *
- * \param fmt printf() like format string.
- * \param arg arguments
- */
-#define DRM_DEV_ERROR_RATELIMITED(dev, fmt, ...) \
-({ \
- static DEFINE_RATELIMIT_STATE(_rs, \
- DEFAULT_RATELIMIT_INTERVAL, \
- DEFAULT_RATELIMIT_BURST); \
- \
- if (__ratelimit(&_rs)) \
- DRM_DEV_ERROR(dev, fmt, ##__VA_ARGS__); \
-})
-#define DRM_ERROR_RATELIMITED(fmt, ...) \
- DRM_DEV_ERROR_RATELIMITED(NULL, fmt, ##__VA_ARGS__)
-
-#define DRM_DEV_INFO(dev, fmt, ...) \
- drm_dev_printk(dev, KERN_INFO, DRM_UT_NONE, __func__, "", fmt, \
- ##__VA_ARGS__)
-
-#define DRM_DEV_INFO_ONCE(dev, fmt, ...) \
-({ \
- static bool __print_once __read_mostly; \
- if (!__print_once) { \
- __print_once = true; \
- DRM_DEV_INFO(dev, fmt, ##__VA_ARGS__); \
- } \
-})
-
-/**
- * Debug output.
- *
- * \param fmt printf() like format string.
- * \param arg arguments
- */
-#define DRM_DEV_DEBUG(dev, fmt, args...) \
- drm_dev_printk(dev, KERN_DEBUG, DRM_UT_CORE, __func__, "", fmt, \
- ##args)
-#define DRM_DEBUG(fmt, ...) \
- drm_printk(KERN_DEBUG, DRM_UT_CORE, fmt, ##__VA_ARGS__)
-
-#define DRM_DEV_DEBUG_DRIVER(dev, fmt, args...) \
- drm_dev_printk(dev, KERN_DEBUG, DRM_UT_DRIVER, __func__, "", \
- fmt, ##args)
-#define DRM_DEBUG_DRIVER(fmt, ...) \
- drm_printk(KERN_DEBUG, DRM_UT_DRIVER, fmt, ##__VA_ARGS__)
-
-#define DRM_DEV_DEBUG_KMS(dev, fmt, args...) \
- drm_dev_printk(dev, KERN_DEBUG, DRM_UT_KMS, __func__, "", fmt, \
- ##args)
-#define DRM_DEBUG_KMS(fmt, ...) \
- drm_printk(KERN_DEBUG, DRM_UT_KMS, fmt, ##__VA_ARGS__)
-
-#define DRM_DEV_DEBUG_PRIME(dev, fmt, args...) \
- drm_dev_printk(dev, KERN_DEBUG, DRM_UT_PRIME, __func__, "", \
- fmt, ##args)
-#define DRM_DEBUG_PRIME(fmt, ...) \
- drm_printk(KERN_DEBUG, DRM_UT_PRIME, fmt, ##__VA_ARGS__)
-
-#define DRM_DEV_DEBUG_ATOMIC(dev, fmt, args...) \
- drm_dev_printk(dev, KERN_DEBUG, DRM_UT_ATOMIC, __func__, "", \
- fmt, ##args)
-#define DRM_DEBUG_ATOMIC(fmt, ...) \
- drm_printk(KERN_DEBUG, DRM_UT_ATOMIC, fmt, ##__VA_ARGS__)
-
-#define DRM_DEV_DEBUG_VBL(dev, fmt, args...) \
- drm_dev_printk(dev, KERN_DEBUG, DRM_UT_VBL, __func__, "", fmt, \
- ##args)
-#define DRM_DEBUG_VBL(fmt, ...) \
- drm_printk(KERN_DEBUG, DRM_UT_VBL, fmt, ##__VA_ARGS__)
-
-#define _DRM_DEV_DEFINE_DEBUG_RATELIMITED(dev, level, fmt, args...) \
-({ \
- static DEFINE_RATELIMIT_STATE(_rs, \
- DEFAULT_RATELIMIT_INTERVAL, \
- DEFAULT_RATELIMIT_BURST); \
- if (__ratelimit(&_rs)) \
- drm_dev_printk(dev, KERN_DEBUG, DRM_UT_ ## level, \
- __func__, "", fmt, ##args); \
-})
-
-/**
- * Rate limited debug output. Like DRM_DEBUG() but won't flood the log.
- *
- * \param fmt printf() like format string.
- * \param arg arguments
- */
-#define DRM_DEV_DEBUG_RATELIMITED(dev, fmt, args...) \
- DEV__DRM_DEFINE_DEBUG_RATELIMITED(dev, CORE, fmt, ##args)
-#define DRM_DEBUG_RATELIMITED(fmt, args...) \
- DRM_DEV_DEBUG_RATELIMITED(NULL, fmt, ##args)
-#define DRM_DEV_DEBUG_DRIVER_RATELIMITED(dev, fmt, args...) \
- _DRM_DEV_DEFINE_DEBUG_RATELIMITED(dev, DRIVER, fmt, ##args)
-#define DRM_DEBUG_DRIVER_RATELIMITED(fmt, args...) \
- DRM_DEV_DEBUG_DRIVER_RATELIMITED(NULL, fmt, ##args)
-#define DRM_DEV_DEBUG_KMS_RATELIMITED(dev, fmt, args...) \
- _DRM_DEV_DEFINE_DEBUG_RATELIMITED(dev, KMS, fmt, ##args)
-#define DRM_DEBUG_KMS_RATELIMITED(fmt, args...) \
- DRM_DEV_DEBUG_KMS_RATELIMITED(NULL, fmt, ##args)
-#define DRM_DEV_DEBUG_PRIME_RATELIMITED(dev, fmt, args...) \
- _DRM_DEV_DEFINE_DEBUG_RATELIMITED(dev, PRIME, fmt, ##args)
-#define DRM_DEBUG_PRIME_RATELIMITED(fmt, args...) \
- DRM_DEV_DEBUG_PRIME_RATELIMITED(NULL, fmt, ##args)
-
-/* Format strings and argument splitters to simplify printing
- * various "complex" objects
- */
-
-/*@}*/
-
-/***********************************************************************/
/** \name Internal types and structures */
/*@{*/
diff --git a/include/drm/drm_debug.h b/include/drm/drm_debug.h
new file mode 100644
index 0000000..24fbea4
--- /dev/null
+++ b/include/drm/drm_debug.h
@@ -0,0 +1,193 @@
+/*
+ * Internal Header for the Direct Rendering Manager
+ *
+ * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
+ * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
+ * Copyright (c) 2009-2010, Code Aurora Forum.
+ * All rights reserved.
+ *
+ * Author: Rickard E. (Rik) Faith <faith@valinux.com>
+ * Author: Gareth Hughes <gareth@valinux.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#ifndef _DRM_DEBUG_H_
+#define _DRM_DEBUG_H_
+
+#include <linux/kernel.h>
+
+__printf(6, 7)
+void drm_dev_printk(const struct device *dev, const char *level,
+ unsigned int category, const char *function_name,
+ const char *prefix, const char *format, ...);
+__printf(3, 4)
+void drm_printk(const char *level, unsigned int category,
+ const char *format, ...);
+
+/***********************************************************************/
+/** \name Macros to make printk easier */
+/*@{*/
+
+#define _DRM_PRINTK(once, level, fmt, ...) \
+ do { \
+ printk##once(KERN_##level "[" DRM_NAME "] " fmt, \
+ ##__VA_ARGS__); \
+ } while (0)
+
+#define DRM_INFO(fmt, ...) \
+ _DRM_PRINTK(, INFO, fmt, ##__VA_ARGS__)
+#define DRM_NOTE(fmt, ...) \
+ _DRM_PRINTK(, NOTICE, fmt, ##__VA_ARGS__)
+#define DRM_WARN(fmt, ...) \
+ _DRM_PRINTK(, WARNING, fmt, ##__VA_ARGS__)
+
+#define DRM_INFO_ONCE(fmt, ...) \
+ _DRM_PRINTK(_once, INFO, fmt, ##__VA_ARGS__)
+#define DRM_NOTE_ONCE(fmt, ...) \
+ _DRM_PRINTK(_once, NOTICE, fmt, ##__VA_ARGS__)
+#define DRM_WARN_ONCE(fmt, ...) \
+ _DRM_PRINTK(_once, WARNING, fmt, ##__VA_ARGS__)
+
+/**
+ * Error output.
+ *
+ * \param fmt printf() like format string.
+ * \param arg arguments
+ */
+#define DRM_DEV_ERROR(dev, fmt, ...) \
+ drm_dev_printk(dev, KERN_ERR, DRM_UT_NONE, __func__, " *ERROR*",\
+ fmt, ##__VA_ARGS__)
+#define DRM_ERROR(fmt, ...) \
+ drm_printk(KERN_ERR, DRM_UT_NONE, fmt, ##__VA_ARGS__)
+
+/**
+ * Rate limited error output. Like DRM_ERROR() but won't flood the log.
+ *
+ * \param fmt printf() like format string.
+ * \param arg arguments
+ */
+#define DRM_DEV_ERROR_RATELIMITED(dev, fmt, ...) \
+({ \
+ static DEFINE_RATELIMIT_STATE(_rs, \
+ DEFAULT_RATELIMIT_INTERVAL, \
+ DEFAULT_RATELIMIT_BURST); \
+ \
+ if (__ratelimit(&_rs)) \
+ DRM_DEV_ERROR(dev, fmt, ##__VA_ARGS__); \
+})
+#define DRM_ERROR_RATELIMITED(fmt, ...) \
+ DRM_DEV_ERROR_RATELIMITED(NULL, fmt, ##__VA_ARGS__)
+
+#define DRM_DEV_INFO(dev, fmt, ...) \
+ drm_dev_printk(dev, KERN_INFO, DRM_UT_NONE, __func__, "", fmt, \
+ ##__VA_ARGS__)
+
+#define DRM_DEV_INFO_ONCE(dev, fmt, ...) \
+({ \
+ static bool __print_once __read_mostly; \
+ if (!__print_once) { \
+ __print_once = true; \
+ DRM_DEV_INFO(dev, fmt, ##__VA_ARGS__); \
+ } \
+})
+
+/**
+ * Debug output.
+ *
+ * \param fmt printf() like format string.
+ * \param arg arguments
+ */
+#define DRM_DEV_DEBUG(dev, fmt, args...) \
+ drm_dev_printk(dev, KERN_DEBUG, DRM_UT_CORE, __func__, "", fmt, \
+ ##args)
+#define DRM_DEBUG(fmt, ...) \
+ drm_printk(KERN_DEBUG, DRM_UT_CORE, fmt, ##__VA_ARGS__)
+
+#define DRM_DEV_DEBUG_DRIVER(dev, fmt, args...) \
+ drm_dev_printk(dev, KERN_DEBUG, DRM_UT_DRIVER, __func__, "", \
+ fmt, ##args)
+#define DRM_DEBUG_DRIVER(fmt, ...) \
+ drm_printk(KERN_DEBUG, DRM_UT_DRIVER, fmt, ##__VA_ARGS__)
+
+#define DRM_DEV_DEBUG_KMS(dev, fmt, args...) \
+ drm_dev_printk(dev, KERN_DEBUG, DRM_UT_KMS, __func__, "", fmt, \
+ ##args)
+#define DRM_DEBUG_KMS(fmt, ...) \
+ drm_printk(KERN_DEBUG, DRM_UT_KMS, fmt, ##__VA_ARGS__)
+
+#define DRM_DEV_DEBUG_PRIME(dev, fmt, args...) \
+ drm_dev_printk(dev, KERN_DEBUG, DRM_UT_PRIME, __func__, "", \
+ fmt, ##args)
+#define DRM_DEBUG_PRIME(fmt, ...) \
+ drm_printk(KERN_DEBUG, DRM_UT_PRIME, fmt, ##__VA_ARGS__)
+
+#define DRM_DEV_DEBUG_ATOMIC(dev, fmt, args...) \
+ drm_dev_printk(dev, KERN_DEBUG, DRM_UT_ATOMIC, __func__, "", \
+ fmt, ##args)
+#define DRM_DEBUG_ATOMIC(fmt, ...) \
+ drm_printk(KERN_DEBUG, DRM_UT_ATOMIC, fmt, ##__VA_ARGS__)
+
+#define DRM_DEV_DEBUG_VBL(dev, fmt, args...) \
+ drm_dev_printk(dev, KERN_DEBUG, DRM_UT_VBL, __func__, "", fmt, \
+ ##args)
+#define DRM_DEBUG_VBL(fmt, ...) \
+ drm_printk(KERN_DEBUG, DRM_UT_VBL, fmt, ##__VA_ARGS__)
+
+#define _DRM_DEV_DEFINE_DEBUG_RATELIMITED(dev, level, fmt, args...) \
+({ \
+ static DEFINE_RATELIMIT_STATE(_rs, \
+ DEFAULT_RATELIMIT_INTERVAL, \
+ DEFAULT_RATELIMIT_BURST); \
+ if (__ratelimit(&_rs)) \
+ drm_dev_printk(dev, KERN_DEBUG, DRM_UT_ ## level, \
+ __func__, "", fmt, ##args); \
+})
+
+/**
+ * Rate limited debug output. Like DRM_DEBUG() but won't flood the log.
+ *
+ * \param fmt printf() like format string.
+ * \param arg arguments
+ */
+#define DRM_DEV_DEBUG_RATELIMITED(dev, fmt, args...) \
+ DEV__DRM_DEFINE_DEBUG_RATELIMITED(dev, CORE, fmt, ##args)
+#define DRM_DEBUG_RATELIMITED(fmt, args...) \
+ DRM_DEV_DEBUG_RATELIMITED(NULL, fmt, ##args)
+#define DRM_DEV_DEBUG_DRIVER_RATELIMITED(dev, fmt, args...) \
+ _DRM_DEV_DEFINE_DEBUG_RATELIMITED(dev, DRIVER, fmt, ##args)
+#define DRM_DEBUG_DRIVER_RATELIMITED(fmt, args...) \
+ DRM_DEV_DEBUG_DRIVER_RATELIMITED(NULL, fmt, ##args)
+#define DRM_DEV_DEBUG_KMS_RATELIMITED(dev, fmt, args...) \
+ _DRM_DEV_DEFINE_DEBUG_RATELIMITED(dev, KMS, fmt, ##args)
+#define DRM_DEBUG_KMS_RATELIMITED(fmt, args...) \
+ DRM_DEV_DEBUG_KMS_RATELIMITED(NULL, fmt, ##args)
+#define DRM_DEV_DEBUG_PRIME_RATELIMITED(dev, fmt, args...) \
+ _DRM_DEV_DEFINE_DEBUG_RATELIMITED(dev, PRIME, fmt, ##args)
+#define DRM_DEBUG_PRIME_RATELIMITED(fmt, args...) \
+ DRM_DEV_DEBUG_PRIME_RATELIMITED(NULL, fmt, ##args)
+
+/* Format strings and argument splitters to simplify printing
+ * various "complex" objects
+ */
+
+/*@}*/
+
+#endif /* _DRM_DEBUG_H_ */
diff --git a/include/drm/drm_drv.h b/include/drm/drm_drv.h
index 71bbaae..4f3cc25 100644
--- a/include/drm/drm_drv.h
+++ b/include/drm/drm_drv.h
@@ -592,13 +592,6 @@ struct drm_driver {
int dev_priv_size;
};
-__printf(6, 7)
-void drm_dev_printk(const struct device *dev, const char *level,
- unsigned int category, const char *function_name,
- const char *prefix, const char *format, ...);
-__printf(3, 4)
-void drm_printk(const char *level, unsigned int category,
- const char *format, ...);
extern unsigned int drm_debug;
int drm_dev_init(struct drm_device *dev,
--
2.7.4
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v2 2/3] drm: Update old comment style
2017-10-12 2:25 [PATCH v2 0/3] drm: Move debug macros out of drmP.h Haneen Mohammed
2017-10-12 2:32 ` [PATCH v2 1/3] drm: Extract drm_debug.[hc] Haneen Mohammed
@ 2017-10-12 2:36 ` Haneen Mohammed
2017-10-12 2:39 ` [PATCH v2 3/3] drm/debug: Add missing kerneldoc comments to exported functions Haneen Mohammed
2 siblings, 0 replies; 9+ messages in thread
From: Haneen Mohammed @ 2017-10-12 2:36 UTC (permalink / raw)
To: dri-devel; +Cc: gregkh, outreachy-kernel, Daniel Vetter
Remove old comment style used by doxygen.
And remove comment left from commit 99cdb35e787b ("drm/doc: move printf
helpers out of drmP.h") after refactoring drmP.h.
Signed-off-by: Haneen Mohammed <hamohammed.sa@gmail.com>
---
Changes in v2:
- Fix kerneldoc comments
include/drm/drm_debug.h | 26 +++++++++-----------------
1 file changed, 9 insertions(+), 17 deletions(-)
diff --git a/include/drm/drm_debug.h b/include/drm/drm_debug.h
index 24fbea4..b40b0ef 100644
--- a/include/drm/drm_debug.h
+++ b/include/drm/drm_debug.h
@@ -42,9 +42,7 @@ __printf(3, 4)
void drm_printk(const char *level, unsigned int category,
const char *format, ...);
-/***********************************************************************/
-/** \name Macros to make printk easier */
-/*@{*/
+/** Macros to make printk easier */
#define _DRM_PRINTK(once, level, fmt, ...) \
do { \
@@ -69,8 +67,8 @@ void drm_printk(const char *level, unsigned int category,
/**
* Error output.
*
- * \param fmt printf() like format string.
- * \param arg arguments
+ * @dev: device pointer
+ * @fmt: printf() like format string.
*/
#define DRM_DEV_ERROR(dev, fmt, ...) \
drm_dev_printk(dev, KERN_ERR, DRM_UT_NONE, __func__, " *ERROR*",\
@@ -81,8 +79,8 @@ void drm_printk(const char *level, unsigned int category,
/**
* Rate limited error output. Like DRM_ERROR() but won't flood the log.
*
- * \param fmt printf() like format string.
- * \param arg arguments
+ * @dev: device pointer
+ * @fmt: printf() like format string.
*/
#define DRM_DEV_ERROR_RATELIMITED(dev, fmt, ...) \
({ \
@@ -112,8 +110,8 @@ void drm_printk(const char *level, unsigned int category,
/**
* Debug output.
*
- * \param fmt printf() like format string.
- * \param arg arguments
+ * @dev: device pointer
+ * @fmt: printf() like format string.
*/
#define DRM_DEV_DEBUG(dev, fmt, args...) \
drm_dev_printk(dev, KERN_DEBUG, DRM_UT_CORE, __func__, "", fmt, \
@@ -164,8 +162,8 @@ void drm_printk(const char *level, unsigned int category,
/**
* Rate limited debug output. Like DRM_DEBUG() but won't flood the log.
*
- * \param fmt printf() like format string.
- * \param arg arguments
+ * @dev: device pointer
+ * @fmt: printf() like format string.
*/
#define DRM_DEV_DEBUG_RATELIMITED(dev, fmt, args...) \
DEV__DRM_DEFINE_DEBUG_RATELIMITED(dev, CORE, fmt, ##args)
@@ -184,10 +182,4 @@ void drm_printk(const char *level, unsigned int category,
#define DRM_DEBUG_PRIME_RATELIMITED(fmt, args...) \
DRM_DEV_DEBUG_PRIME_RATELIMITED(NULL, fmt, ##args)
-/* Format strings and argument splitters to simplify printing
- * various "complex" objects
- */
-
-/*@}*/
-
#endif /* _DRM_DEBUG_H_ */
--
2.7.4
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v2 3/3] drm/debug: Add missing kerneldoc comments to exported functions
2017-10-12 2:25 [PATCH v2 0/3] drm: Move debug macros out of drmP.h Haneen Mohammed
2017-10-12 2:32 ` [PATCH v2 1/3] drm: Extract drm_debug.[hc] Haneen Mohammed
2017-10-12 2:36 ` [PATCH v2 2/3] drm: Update old comment style Haneen Mohammed
@ 2017-10-12 2:39 ` Haneen Mohammed
2017-10-16 9:03 ` [Outreachy kernel] " Daniel Vetter
2 siblings, 1 reply; 9+ messages in thread
From: Haneen Mohammed @ 2017-10-12 2:39 UTC (permalink / raw)
To: dri-devel; +Cc: gregkh, outreachy-kernel, Daniel Vetter
Add missing documentation for exported functions to avoid kerneldoc
warning.
Signed-off-by: Haneen Mohammed <hamohammed.sa@gmail.com>
---
Changes in v2:
- Include this patch to avoid kerneldoc warning
drivers/gpu/drm/drm_debug.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/drivers/gpu/drm/drm_debug.c b/drivers/gpu/drm/drm_debug.c
index a79593f..6e66b05 100644
--- a/drivers/gpu/drm/drm_debug.c
+++ b/drivers/gpu/drm/drm_debug.c
@@ -29,6 +29,16 @@
#define DRM_PRINTK_FMT "[" DRM_NAME ":%s]%s %pV"
+/**
+ * drm_dev_printk
+ *
+ * @dev: device pointer
+ * @level: logging level
+ * @category: debug category
+ * @function_name: function name
+ * @prefix: prefix string
+ * @format: printf() like format string
+ */
void drm_dev_printk(const struct device *dev, const char *level,
unsigned int category, const char *function_name,
const char *prefix, const char *format, ...)
@@ -53,6 +63,13 @@ void drm_dev_printk(const struct device *dev, const char *level,
}
EXPORT_SYMBOL(drm_dev_printk);
+/**
+ * drm_printk
+ *
+ * @level: logging level
+ * @category: debug category
+ * @format: printf() like format string
+ */
void drm_printk(const char *level, unsigned int category,
const char *format, ...)
{
--
2.7.4
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/3] drm: Extract drm_debug.[hc]
2017-10-12 2:32 ` [PATCH v2 1/3] drm: Extract drm_debug.[hc] Haneen Mohammed
@ 2017-10-12 10:35 ` Chris Wilson
2017-10-13 21:21 ` Haneen Mohammed
2017-10-13 1:57 ` kbuild test robot
1 sibling, 1 reply; 9+ messages in thread
From: Chris Wilson @ 2017-10-12 10:35 UTC (permalink / raw)
To: Haneen Mohammed, dri-devel; +Cc: Daniel Vetter, gregkh, outreachy-kernel
Quoting Haneen Mohammed (2017-10-12 03:32:53)
> diff --git a/drivers/gpu/drm/drm_debug.c b/drivers/gpu/drm/drm_debug.c
> new file mode 100644
> index 0000000..a79593f
> --- /dev/null
> +++ b/drivers/gpu/drm/drm_debug.c
> @@ -0,0 +1,75 @@
> +/*
> + * Copyright 2001 VA Linux Systems, Inc., Sunnyvale, California.
> + * All Rights Reserved.
> + *
> + * Author Rickard E. (Rik) Faith <faith@valinux.com>
> + *
> + * Permission is hereby granted, free of charge, to any person obtaining a
> + * copy of this software and associated documentation files (the "Software"),
> + * to deal in the Software without restriction, including without limitation
> + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> + * and/or sell copies of the Software, and to permit persons to whom the
> + * Software is furnished to do so, subject to the following conditions:
> + *
> + * The above copyright notice and this permission notice (including the next
> + * paragraph) shall be included in all copies or substantial portions of the
> + * Software.
> + *
> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
> + * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
> + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
> + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
> + * DEALINGS IN THE SOFTWARE.
> + */
> +
> +#include <drm/drm_debug.h>
> +#include <drm/drmP.h>
> +
> +#define DRM_PRINTK_FMT "[" DRM_NAME ":%s]%s %pV"
> +
> +void drm_dev_printk(const struct device *dev, const char *level,
> + unsigned int category, const char *function_name,
> + const char *prefix, const char *format, ...)
> +{
> + struct va_format vaf;
> + va_list args;
> +
> + if (category != DRM_UT_NONE && !(drm_debug & category))
> + return;
> +
> + va_start(args, format);
> + vaf.fmt = format;
> + vaf.va = &args;
> +
> + if (dev)
> + dev_printk(level, dev, DRM_PRINTK_FMT, function_name, prefix,
> + &vaf);
> + else
> + printk("%s" DRM_PRINTK_FMT, level, function_name, prefix, &vaf);
> +
> + va_end(args);
> +}
> +EXPORT_SYMBOL(drm_dev_printk);
> +
> +void drm_printk(const char *level, unsigned int category,
> + const char *format, ...)
> +{
> + struct va_format vaf;
> + va_list args;
> +
> + if (category != DRM_UT_NONE && !(drm_debug & category))
> + return;
> +
> + va_start(args, format);
> + vaf.fmt = format;
> + vaf.va = &args;
> +
> + printk("%s" "[" DRM_NAME ":%ps]%s %pV",
> + level, __builtin_return_address(0),
> + strcmp(level, KERN_ERR) == 0 ? " *ERROR*" : "", &vaf);
> +
> + va_end(args);
> +}
> +EXPORT_SYMBOL(drm_printk);
We already have drm_print.c, currently used to house drm_printf and the
drm_printer. It might be a bit confusing to have drm_printk and
drm_printf next to each other, but less confusing that calling user
error messages drm_debug.c.
-Chris
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/3] drm: Extract drm_debug.[hc]
2017-10-12 2:32 ` [PATCH v2 1/3] drm: Extract drm_debug.[hc] Haneen Mohammed
2017-10-12 10:35 ` Chris Wilson
@ 2017-10-13 1:57 ` kbuild test robot
1 sibling, 0 replies; 9+ messages in thread
From: kbuild test robot @ 2017-10-13 1:57 UTC (permalink / raw)
To: Haneen Mohammed
Cc: Daniel Vetter, gregkh, kbuild-all, dri-devel, outreachy-kernel
[-- Attachment #1: Type: text/plain, Size: 2646 bytes --]
Hi Haneen,
[auto build test WARNING on drm/drm-next]
[also build test WARNING on v4.14-rc4 next-20171009]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Haneen-Mohammed/drm-Move-debug-macros-out-of-drmP-h/20171013-055510
base: git://people.freedesktop.org/~airlied/linux.git drm-next
config: i386-randconfig-c0-10130904 (attached as .config)
compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4
reproduce:
# save the attached .config to linux build tree
make ARCH=i386
All warnings (new ones prefixed by >>):
In file included from drivers/gpu/drm/drm_debug.c:27:0:
>> include/drm/drm_debug.h:40:7: warning: 'struct device' declared inside parameter list
const char *prefix, const char *format, ...);
^
>> include/drm/drm_debug.h:40:7: warning: its scope is only this definition or declaration, which is probably not what you want
drivers/gpu/drm/drm_debug.c:32:6: error: conflicting types for 'drm_dev_printk'
void drm_dev_printk(const struct device *dev, const char *level,
^
In file included from drivers/gpu/drm/drm_debug.c:27:0:
include/drm/drm_debug.h:38:6: note: previous declaration of 'drm_dev_printk' was here
void drm_dev_printk(const struct device *dev, const char *level,
^
--
In file included from drivers/gpu//drm/drm_debug.c:27:0:
>> include/drm/drm_debug.h:40:7: warning: 'struct device' declared inside parameter list
const char *prefix, const char *format, ...);
^
>> include/drm/drm_debug.h:40:7: warning: its scope is only this definition or declaration, which is probably not what you want
drivers/gpu//drm/drm_debug.c:32:6: error: conflicting types for 'drm_dev_printk'
void drm_dev_printk(const struct device *dev, const char *level,
^
In file included from drivers/gpu//drm/drm_debug.c:27:0:
include/drm/drm_debug.h:38:6: note: previous declaration of 'drm_dev_printk' was here
void drm_dev_printk(const struct device *dev, const char *level,
^
vim +40 include/drm/drm_debug.h
36
37 __printf(6, 7)
38 void drm_dev_printk(const struct device *dev, const char *level,
39 unsigned int category, const char *function_name,
> 40 const char *prefix, const char *format, ...);
41 __printf(3, 4)
42 void drm_printk(const char *level, unsigned int category,
43 const char *format, ...);
44
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 26366 bytes --]
[-- Attachment #3: Type: text/plain, Size: 160 bytes --]
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/3] drm: Extract drm_debug.[hc]
2017-10-12 10:35 ` Chris Wilson
@ 2017-10-13 21:21 ` Haneen Mohammed
2017-10-16 9:01 ` [Outreachy kernel] " Daniel Vetter
0 siblings, 1 reply; 9+ messages in thread
From: Haneen Mohammed @ 2017-10-13 21:21 UTC (permalink / raw)
To: Chris Wilson; +Cc: outreachy-kernel, dri-devel, Daniel Vetter
On Thu, Oct 12, 2017 at 11:35:12AM +0100, Chris Wilson wrote:
> Quoting Haneen Mohammed (2017-10-12 03:32:53)
> > diff --git a/drivers/gpu/drm/drm_debug.c b/drivers/gpu/drm/drm_debug.c
> > new file mode 100644
> > index 0000000..a79593f
> > --- /dev/null
> > +++ b/drivers/gpu/drm/drm_debug.c
> > @@ -0,0 +1,75 @@
> > +/*
> > + * Copyright 2001 VA Linux Systems, Inc., Sunnyvale, California.
> > + * All Rights Reserved.
> > + *
> > + * Author Rickard E. (Rik) Faith <faith@valinux.com>
> > + *
> > + * Permission is hereby granted, free of charge, to any person obtaining a
> > + * copy of this software and associated documentation files (the "Software"),
> > + * to deal in the Software without restriction, including without limitation
> > + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> > + * and/or sell copies of the Software, and to permit persons to whom the
> > + * Software is furnished to do so, subject to the following conditions:
> > + *
> > + * The above copyright notice and this permission notice (including the next
> > + * paragraph) shall be included in all copies or substantial portions of the
> > + * Software.
> > + *
> > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
> > + * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
> > + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
> > + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
> > + * DEALINGS IN THE SOFTWARE.
> > + */
> > +
> > +#include <drm/drm_debug.h>
> > +#include <drm/drmP.h>
> > +
> > +#define DRM_PRINTK_FMT "[" DRM_NAME ":%s]%s %pV"
> > +
> > +void drm_dev_printk(const struct device *dev, const char *level,
> > + unsigned int category, const char *function_name,
> > + const char *prefix, const char *format, ...)
> > +{
> > + struct va_format vaf;
> > + va_list args;
> > +
> > + if (category != DRM_UT_NONE && !(drm_debug & category))
> > + return;
> > +
> > + va_start(args, format);
> > + vaf.fmt = format;
> > + vaf.va = &args;
> > +
> > + if (dev)
> > + dev_printk(level, dev, DRM_PRINTK_FMT, function_name, prefix,
> > + &vaf);
> > + else
> > + printk("%s" DRM_PRINTK_FMT, level, function_name, prefix, &vaf);
> > +
> > + va_end(args);
> > +}
> > +EXPORT_SYMBOL(drm_dev_printk);
> > +
> > +void drm_printk(const char *level, unsigned int category,
> > + const char *format, ...)
> > +{
> > + struct va_format vaf;
> > + va_list args;
> > +
> > + if (category != DRM_UT_NONE && !(drm_debug & category))
> > + return;
> > +
> > + va_start(args, format);
> > + vaf.fmt = format;
> > + vaf.va = &args;
> > +
> > + printk("%s" "[" DRM_NAME ":%ps]%s %pV",
> > + level, __builtin_return_address(0),
> > + strcmp(level, KERN_ERR) == 0 ? " *ERROR*" : "", &vaf);
> > +
> > + va_end(args);
> > +}
> > +EXPORT_SYMBOL(drm_printk);
>
> We already have drm_print.c, currently used to house drm_printf and the
> drm_printer. It might be a bit confusing to have drm_printk and
> drm_printf next to each other, but less confusing that calling user
> error messages drm_debug.c.
> -Chris
I didn't notice that.
Should I move these functions and macros to drm_print.[hc] instead then?
Haneen
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Outreachy kernel] Re: [PATCH v2 1/3] drm: Extract drm_debug.[hc]
2017-10-13 21:21 ` Haneen Mohammed
@ 2017-10-16 9:01 ` Daniel Vetter
0 siblings, 0 replies; 9+ messages in thread
From: Daniel Vetter @ 2017-10-16 9:01 UTC (permalink / raw)
To: Haneen Mohammed; +Cc: Daniel Vetter, outreachy-kernel, dri-devel
On Fri, Oct 13, 2017 at 03:21:19PM -0600, Haneen Mohammed wrote:
> On Thu, Oct 12, 2017 at 11:35:12AM +0100, Chris Wilson wrote:
> > Quoting Haneen Mohammed (2017-10-12 03:32:53)
> > > diff --git a/drivers/gpu/drm/drm_debug.c b/drivers/gpu/drm/drm_debug.c
> > > new file mode 100644
> > > index 0000000..a79593f
> > > --- /dev/null
> > > +++ b/drivers/gpu/drm/drm_debug.c
> > > @@ -0,0 +1,75 @@
> > > +/*
> > > + * Copyright 2001 VA Linux Systems, Inc., Sunnyvale, California.
> > > + * All Rights Reserved.
> > > + *
> > > + * Author Rickard E. (Rik) Faith <faith@valinux.com>
> > > + *
> > > + * Permission is hereby granted, free of charge, to any person obtaining a
> > > + * copy of this software and associated documentation files (the "Software"),
> > > + * to deal in the Software without restriction, including without limitation
> > > + * the rights to use, copy, modify, merge, publish, distribute, sublicense,
> > > + * and/or sell copies of the Software, and to permit persons to whom the
> > > + * Software is furnished to do so, subject to the following conditions:
> > > + *
> > > + * The above copyright notice and this permission notice (including the next
> > > + * paragraph) shall be included in all copies or substantial portions of the
> > > + * Software.
> > > + *
> > > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
> > > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> > > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
> > > + * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
> > > + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
> > > + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
> > > + * DEALINGS IN THE SOFTWARE.
> > > + */
> > > +
> > > +#include <drm/drm_debug.h>
> > > +#include <drm/drmP.h>
> > > +
> > > +#define DRM_PRINTK_FMT "[" DRM_NAME ":%s]%s %pV"
> > > +
> > > +void drm_dev_printk(const struct device *dev, const char *level,
> > > + unsigned int category, const char *function_name,
> > > + const char *prefix, const char *format, ...)
> > > +{
> > > + struct va_format vaf;
> > > + va_list args;
> > > +
> > > + if (category != DRM_UT_NONE && !(drm_debug & category))
> > > + return;
> > > +
> > > + va_start(args, format);
> > > + vaf.fmt = format;
> > > + vaf.va = &args;
> > > +
> > > + if (dev)
> > > + dev_printk(level, dev, DRM_PRINTK_FMT, function_name, prefix,
> > > + &vaf);
> > > + else
> > > + printk("%s" DRM_PRINTK_FMT, level, function_name, prefix, &vaf);
> > > +
> > > + va_end(args);
> > > +}
> > > +EXPORT_SYMBOL(drm_dev_printk);
> > > +
> > > +void drm_printk(const char *level, unsigned int category,
> > > + const char *format, ...)
> > > +{
> > > + struct va_format vaf;
> > > + va_list args;
> > > +
> > > + if (category != DRM_UT_NONE && !(drm_debug & category))
> > > + return;
> > > +
> > > + va_start(args, format);
> > > + vaf.fmt = format;
> > > + vaf.va = &args;
> > > +
> > > + printk("%s" "[" DRM_NAME ":%ps]%s %pV",
> > > + level, __builtin_return_address(0),
> > > + strcmp(level, KERN_ERR) == 0 ? " *ERROR*" : "", &vaf);
> > > +
> > > + va_end(args);
> > > +}
> > > +EXPORT_SYMBOL(drm_printk);
> >
> > We already have drm_print.c, currently used to house drm_printf and the
> > drm_printer. It might be a bit confusing to have drm_printk and
> > drm_printf next to each other, but less confusing that calling user
> > error messages drm_debug.c.
> > -Chris
>
> I didn't notice that.
> Should I move these functions and macros to drm_print.[hc] instead then?
Yeah I think this makes sense, instead of having yet another file with
some big overlap with drm_print.[hc]. That also solves the problem of
where to put the kerneldoc include :-)
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Outreachy kernel] [PATCH v2 3/3] drm/debug: Add missing kerneldoc comments to exported functions
2017-10-12 2:39 ` [PATCH v2 3/3] drm/debug: Add missing kerneldoc comments to exported functions Haneen Mohammed
@ 2017-10-16 9:03 ` Daniel Vetter
0 siblings, 0 replies; 9+ messages in thread
From: Daniel Vetter @ 2017-10-16 9:03 UTC (permalink / raw)
To: Haneen Mohammed; +Cc: gregkh, outreachy-kernel, dri-devel, Daniel Vetter
On Wed, Oct 11, 2017 at 08:39:15PM -0600, Haneen Mohammed wrote:
> Add missing documentation for exported functions to avoid kerneldoc
> warning.
>
> Signed-off-by: Haneen Mohammed <hamohammed.sa@gmail.com>
> ---
> Changes in v2:
> - Include this patch to avoid kerneldoc warning
>
> drivers/gpu/drm/drm_debug.c | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_debug.c b/drivers/gpu/drm/drm_debug.c
> index a79593f..6e66b05 100644
> --- a/drivers/gpu/drm/drm_debug.c
> +++ b/drivers/gpu/drm/drm_debug.c
> @@ -29,6 +29,16 @@
>
> #define DRM_PRINTK_FMT "[" DRM_NAME ":%s]%s %pV"
>
> +/**
> + * drm_dev_printk
> + *
> + * @dev: device pointer
> + * @level: logging level
> + * @category: debug category
> + * @function_name: function name
> + * @prefix: prefix string
> + * @format: printf() like format string
This shuts up kernel-doc complaining about missing doc entries, but not
sure how useful this is. A sentence to what it does, and that drivers
should use it through the provided DRM_DEV_* macros would be more
informative. Similarly for the one below.
Thanks, Daniel
> + */
> void drm_dev_printk(const struct device *dev, const char *level,
> unsigned int category, const char *function_name,
> const char *prefix, const char *format, ...)
> @@ -53,6 +63,13 @@ void drm_dev_printk(const struct device *dev, const char *level,
> }
> EXPORT_SYMBOL(drm_dev_printk);
>
> +/**
> + * drm_printk
> + *
> + * @level: logging level
> + * @category: debug category
> + * @format: printf() like format string
> + */
> void drm_printk(const char *level, unsigned int category,
> const char *format, ...)
> {
> --
> 2.7.4
>
> --
> You received this message because you are subscribed to the Google Groups "outreachy-kernel" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to outreachy-kernel+unsubscribe@googlegroups.com.
> To post to this group, send email to outreachy-kernel@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/outreachy-kernel/7fc383433d651ee4e81e2c132afdad57ad04b9dd.1507773977.git.hamohammed.sa%40gmail.com.
> For more options, visit https://groups.google.com/d/optout.
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2017-10-16 9:03 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-12 2:25 [PATCH v2 0/3] drm: Move debug macros out of drmP.h Haneen Mohammed
2017-10-12 2:32 ` [PATCH v2 1/3] drm: Extract drm_debug.[hc] Haneen Mohammed
2017-10-12 10:35 ` Chris Wilson
2017-10-13 21:21 ` Haneen Mohammed
2017-10-16 9:01 ` [Outreachy kernel] " Daniel Vetter
2017-10-13 1:57 ` kbuild test robot
2017-10-12 2:36 ` [PATCH v2 2/3] drm: Update old comment style Haneen Mohammed
2017-10-12 2:39 ` [PATCH v2 3/3] drm/debug: Add missing kerneldoc comments to exported functions Haneen Mohammed
2017-10-16 9:03 ` [Outreachy kernel] " Daniel Vetter
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).