diff options
Diffstat (limited to 'drivers/gpu/drm/drm_print.c')
-rw-r--r-- | drivers/gpu/drm/drm_print.c | 65 |
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 | } |
64 | EXPORT_SYMBOL(drm_printf); | 64 | EXPORT_SYMBOL(drm_printf); |
65 | 65 | ||
66 | #define DRM_PRINTK_FMT "[" DRM_NAME ":%s]%s %pV" | ||
67 | |||
68 | void drm_dev_printk(const struct device *dev, const char *level, | 66 | void 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 | } | ||
85 | EXPORT_SYMBOL(drm_dev_printk); | ||
86 | |||
87 | void 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 | } |
90 | EXPORT_SYMBOL(drm_dev_printk); | 109 | EXPORT_SYMBOL(drm_dev_dbg); |
91 | 110 | ||
92 | void drm_printk(const char *level, unsigned int category, | 111 | void 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 | } | ||
128 | EXPORT_SYMBOL(drm_dbg); | ||
129 | |||
130 | void 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 | } |
111 | EXPORT_SYMBOL(drm_printk); | 144 | EXPORT_SYMBOL(drm_err); |