aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_print.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/drm_print.c')
-rw-r--r--drivers/gpu/drm/drm_print.c65
1 files changed, 49 insertions, 16 deletions
diff --git a/drivers/gpu/drm/drm_print.c b/drivers/gpu/drm/drm_print.c
index 781518fd88e3..b25f98f33f6c 100644
--- a/drivers/gpu/drm/drm_print.c
+++ b/drivers/gpu/drm/drm_print.c
@@ -63,16 +63,34 @@ void drm_printf(struct drm_printer *p, const char *f, ...)
63} 63}
64EXPORT_SYMBOL(drm_printf); 64EXPORT_SYMBOL(drm_printf);
65 65
66#define DRM_PRINTK_FMT "[" DRM_NAME ":%s]%s %pV"
67
68void drm_dev_printk(const struct device *dev, const char *level, 66void drm_dev_printk(const struct device *dev, const char *level,
69 unsigned int category, const char *function_name, 67 const char *format, ...)
70 const char *prefix, const char *format, ...)
71{ 68{
72 struct va_format vaf; 69 struct va_format vaf;
73 va_list args; 70 va_list args;
74 71
75 if (category != DRM_UT_NONE && !(drm_debug & category)) 72 va_start(args, format);
73 vaf.fmt = format;
74 vaf.va = &args;
75
76 if (dev)
77 dev_printk(level, dev, "[" DRM_NAME ":%ps] %pV",
78 __builtin_return_address(0), &vaf);
79 else
80 printk("%s" "[" DRM_NAME ":%ps] %pV",
81 level, __builtin_return_address(0), &vaf);
82
83 va_end(args);
84}
85EXPORT_SYMBOL(drm_dev_printk);
86
87void drm_dev_dbg(const struct device *dev, unsigned int category,
88 const char *format, ...)
89{
90 struct va_format vaf;
91 va_list args;
92
93 if (!(drm_debug & category))
76 return; 94 return;
77 95
78 va_start(args, format); 96 va_start(args, format);
@@ -80,32 +98,47 @@ void drm_dev_printk(const struct device *dev, const char *level,
80 vaf.va = &args; 98 vaf.va = &args;
81 99
82 if (dev) 100 if (dev)
83 dev_printk(level, dev, DRM_PRINTK_FMT, function_name, prefix, 101 dev_printk(KERN_DEBUG, dev, "[" DRM_NAME ":%ps] %pV",
84 &vaf); 102 __builtin_return_address(0), &vaf);
85 else 103 else
86 printk("%s" DRM_PRINTK_FMT, level, function_name, prefix, &vaf); 104 printk(KERN_DEBUG "[" DRM_NAME ":%ps] %pV",
105 __builtin_return_address(0), &vaf);
87 106
88 va_end(args); 107 va_end(args);
89} 108}
90EXPORT_SYMBOL(drm_dev_printk); 109EXPORT_SYMBOL(drm_dev_dbg);
91 110
92void drm_printk(const char *level, unsigned int category, 111void drm_dbg(unsigned int category, const char *format, ...)
93 const char *format, ...)
94{ 112{
95 struct va_format vaf; 113 struct va_format vaf;
96 va_list args; 114 va_list args;
97 115
98 if (category != DRM_UT_NONE && !(drm_debug & category)) 116 if (!(drm_debug & category))
99 return; 117 return;
100 118
101 va_start(args, format); 119 va_start(args, format);
102 vaf.fmt = format; 120 vaf.fmt = format;
103 vaf.va = &args; 121 vaf.va = &args;
104 122
105 printk("%s" "[" DRM_NAME ":%ps]%s %pV", 123 printk(KERN_DEBUG "[" DRM_NAME ":%ps] %pV",
106 level, __builtin_return_address(0), 124 __builtin_return_address(0), &vaf);
107 strcmp(level, KERN_ERR) == 0 ? " *ERROR*" : "", &vaf); 125
126 va_end(args);
127}
128EXPORT_SYMBOL(drm_dbg);
129
130void drm_err(const char *format, ...)
131{
132 struct va_format vaf;
133 va_list args;
134
135 va_start(args, format);
136 vaf.fmt = format;
137 vaf.va = &args;
138
139 printk(KERN_ERR "[" DRM_NAME ":%ps] *ERROR* %pV",
140 __builtin_return_address(0), &vaf);
108 141
109 va_end(args); 142 va_end(args);
110} 143}
111EXPORT_SYMBOL(drm_printk); 144EXPORT_SYMBOL(drm_err);