diff options
-rw-r--r-- | drivers/gpu/drm/drm_stub.c | 21 | ||||
-rw-r--r-- | include/drm/drmP.h | 21 |
2 files changed, 28 insertions, 14 deletions
diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c index 001273d57f2d..6d7b083c5b77 100644 --- a/drivers/gpu/drm/drm_stub.c +++ b/drivers/gpu/drm/drm_stub.c | |||
@@ -62,6 +62,26 @@ struct idr drm_minors_idr; | |||
62 | struct class *drm_class; | 62 | struct class *drm_class; |
63 | struct proc_dir_entry *drm_proc_root; | 63 | struct proc_dir_entry *drm_proc_root; |
64 | struct dentry *drm_debugfs_root; | 64 | struct dentry *drm_debugfs_root; |
65 | |||
66 | int drm_err(const char *func, const char *format, ...) | ||
67 | { | ||
68 | struct va_format vaf; | ||
69 | va_list args; | ||
70 | int r; | ||
71 | |||
72 | va_start(args, format); | ||
73 | |||
74 | vaf.fmt = format; | ||
75 | vaf.va = &args; | ||
76 | |||
77 | r = printk(KERN_ERR "[" DRM_NAME ":%s] *ERROR* %pV", func, &vaf); | ||
78 | |||
79 | va_end(args); | ||
80 | |||
81 | return r; | ||
82 | } | ||
83 | EXPORT_SYMBOL(drm_err); | ||
84 | |||
65 | void drm_ut_debug_printk(unsigned int request_level, | 85 | void drm_ut_debug_printk(unsigned int request_level, |
66 | const char *prefix, | 86 | const char *prefix, |
67 | const char *function_name, | 87 | const char *function_name, |
@@ -78,6 +98,7 @@ void drm_ut_debug_printk(unsigned int request_level, | |||
78 | } | 98 | } |
79 | } | 99 | } |
80 | EXPORT_SYMBOL(drm_ut_debug_printk); | 100 | EXPORT_SYMBOL(drm_ut_debug_printk); |
101 | |||
81 | static int drm_minor_get_id(struct drm_device *dev, int type) | 102 | static int drm_minor_get_id(struct drm_device *dev, int type) |
82 | { | 103 | { |
83 | int new_id; | 104 | int new_id; |
diff --git a/include/drm/drmP.h b/include/drm/drmP.h index 202424d17ed7..22db51d10619 100644 --- a/include/drm/drmP.h +++ b/include/drm/drmP.h | |||
@@ -126,6 +126,9 @@ extern void drm_ut_debug_printk(unsigned int request_level, | |||
126 | const char *prefix, | 126 | const char *prefix, |
127 | const char *function_name, | 127 | const char *function_name, |
128 | const char *format, ...); | 128 | const char *format, ...); |
129 | extern __attribute__((format (printf, 2, 3))) | ||
130 | int drm_err(const char *func, const char *format, ...); | ||
131 | |||
129 | /***********************************************************************/ | 132 | /***********************************************************************/ |
130 | /** \name DRM template customization defaults */ | 133 | /** \name DRM template customization defaults */ |
131 | /*@{*/ | 134 | /*@{*/ |
@@ -181,21 +184,11 @@ extern void drm_ut_debug_printk(unsigned int request_level, | |||
181 | * \param fmt printf() like format string. | 184 | * \param fmt printf() like format string. |
182 | * \param arg arguments | 185 | * \param arg arguments |
183 | */ | 186 | */ |
184 | #define DRM_ERROR(fmt, arg...) \ | 187 | #define DRM_ERROR(fmt, ...) \ |
185 | printk(KERN_ERR "[" DRM_NAME ":%s] *ERROR* " fmt , __func__ , ##arg) | 188 | drm_err(__func__, fmt, ##__VA_ARGS__) |
186 | |||
187 | /** | ||
188 | * Memory error output. | ||
189 | * | ||
190 | * \param area memory area where the error occurred. | ||
191 | * \param fmt printf() like format string. | ||
192 | * \param arg arguments | ||
193 | */ | ||
194 | #define DRM_MEM_ERROR(area, fmt, arg...) \ | ||
195 | printk(KERN_ERR "[" DRM_NAME ":%s:%s] *ERROR* " fmt , __func__, \ | ||
196 | drm_mem_stats[area].name , ##arg) | ||
197 | 189 | ||
198 | #define DRM_INFO(fmt, arg...) printk(KERN_INFO "[" DRM_NAME "] " fmt , ##arg) | 190 | #define DRM_INFO(fmt, ...) \ |
191 | printk(KERN_INFO "[" DRM_NAME "] " fmt, ##__VA_ARGS__) | ||
199 | 192 | ||
200 | /** | 193 | /** |
201 | * Debug output. | 194 | * Debug output. |