diff options
author | Joe Perches <joe@perches.com> | 2018-03-13 18:02:15 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2018-03-16 03:41:57 -0400 |
commit | 99a954874e7b9f0c8058476575593b3beb5731a5 (patch) | |
tree | 0e64518e0beb50fc8dedfb72a3324a7afbd095f4 | |
parent | 7022a4a0ece6122e337e1c23af91128398209c8d (diff) |
drm: Reduce object size of DRM_ERROR and DRM_DEBUG uses
drm_printk is used for both DRM_ERROR and DRM_DEBUG with unnecessary
arguments that can be removed by creating separate functins.
Create specific functions for these calls to reduce x86/64 defconfig
size by ~20k.
Modify the existing macros to use the specific calls.
new:
$ size -t drivers/gpu/drm/built-in.a | tail -1
1876562 44542 995 1922099 1d5433 (TOTALS)
old:
$ size -t drivers/gpu/drm/built-in.a | tail -1
1897565 44542 995 1943102 1da63e (TOTALS)
Miscellanea:
o intel_display requires a change to use the specific calls.
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/016b5cb84cede20fd0f91ed6965421d99fd5f2ce.1520978414.git.joe@perches.com
-rw-r--r-- | drivers/gpu/drm/drm_print.c | 28 | ||||
-rw-r--r-- | drivers/gpu/drm/i915/intel_display.c | 15 | ||||
-rw-r--r-- | include/drm/drm_print.h | 27 |
3 files changed, 39 insertions, 31 deletions
diff --git a/drivers/gpu/drm/drm_print.c b/drivers/gpu/drm/drm_print.c index 781518fd88e3..79abf6d5b4db 100644 --- a/drivers/gpu/drm/drm_print.c +++ b/drivers/gpu/drm/drm_print.c | |||
@@ -89,23 +89,37 @@ void drm_dev_printk(const struct device *dev, const char *level, | |||
89 | } | 89 | } |
90 | EXPORT_SYMBOL(drm_dev_printk); | 90 | EXPORT_SYMBOL(drm_dev_printk); |
91 | 91 | ||
92 | void drm_printk(const char *level, unsigned int category, | 92 | void drm_dbg(unsigned int category, const char *format, ...) |
93 | const char *format, ...) | ||
94 | { | 93 | { |
95 | struct va_format vaf; | 94 | struct va_format vaf; |
96 | va_list args; | 95 | va_list args; |
97 | 96 | ||
98 | if (category != DRM_UT_NONE && !(drm_debug & category)) | 97 | if (!(drm_debug & category)) |
99 | return; | 98 | return; |
100 | 99 | ||
101 | va_start(args, format); | 100 | va_start(args, format); |
102 | vaf.fmt = format; | 101 | vaf.fmt = format; |
103 | vaf.va = &args; | 102 | vaf.va = &args; |
104 | 103 | ||
105 | printk("%s" "[" DRM_NAME ":%ps]%s %pV", | 104 | printk(KERN_DEBUG "[" DRM_NAME ":%ps] %pV", |
106 | level, __builtin_return_address(0), | 105 | __builtin_return_address(0), &vaf); |
107 | strcmp(level, KERN_ERR) == 0 ? " *ERROR*" : "", &vaf); | 106 | |
107 | va_end(args); | ||
108 | } | ||
109 | EXPORT_SYMBOL(drm_dbg); | ||
110 | |||
111 | void drm_err(const char *format, ...) | ||
112 | { | ||
113 | struct va_format vaf; | ||
114 | va_list args; | ||
115 | |||
116 | va_start(args, format); | ||
117 | vaf.fmt = format; | ||
118 | vaf.va = &args; | ||
119 | |||
120 | printk(KERN_ERR "[" DRM_NAME ":%ps] *ERROR* %pV", | ||
121 | __builtin_return_address(0), &vaf); | ||
108 | 122 | ||
109 | va_end(args); | 123 | va_end(args); |
110 | } | 124 | } |
111 | EXPORT_SYMBOL(drm_printk); | 125 | EXPORT_SYMBOL(drm_err); |
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 250597e6f580..da8e2d4d84b5 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -11001,24 +11001,17 @@ intel_compare_link_m_n(const struct intel_link_m_n *m_n, | |||
11001 | static void __printf(3, 4) | 11001 | static void __printf(3, 4) |
11002 | pipe_config_err(bool adjust, const char *name, const char *format, ...) | 11002 | pipe_config_err(bool adjust, const char *name, const char *format, ...) |
11003 | { | 11003 | { |
11004 | char *level; | ||
11005 | unsigned int category; | ||
11006 | struct va_format vaf; | 11004 | struct va_format vaf; |
11007 | va_list args; | 11005 | va_list args; |
11008 | 11006 | ||
11009 | if (adjust) { | ||
11010 | level = KERN_DEBUG; | ||
11011 | category = DRM_UT_KMS; | ||
11012 | } else { | ||
11013 | level = KERN_ERR; | ||
11014 | category = DRM_UT_NONE; | ||
11015 | } | ||
11016 | |||
11017 | va_start(args, format); | 11007 | va_start(args, format); |
11018 | vaf.fmt = format; | 11008 | vaf.fmt = format; |
11019 | vaf.va = &args; | 11009 | vaf.va = &args; |
11020 | 11010 | ||
11021 | drm_printk(level, category, "mismatch in %s %pV", name, &vaf); | 11011 | if (adjust) |
11012 | drm_dbg(DRM_UT_KMS, "mismatch in %s %pV", name, &vaf); | ||
11013 | else | ||
11014 | drm_err("mismatch in %s %pV", name, &vaf); | ||
11022 | 11015 | ||
11023 | va_end(args); | 11016 | va_end(args); |
11024 | } | 11017 | } |
diff --git a/include/drm/drm_print.h b/include/drm/drm_print.h index 2a4a42e59a47..3a40c5a3a5fa 100644 --- a/include/drm/drm_print.h +++ b/include/drm/drm_print.h | |||
@@ -200,9 +200,10 @@ __printf(6, 7) | |||
200 | void drm_dev_printk(const struct device *dev, const char *level, | 200 | void drm_dev_printk(const struct device *dev, const char *level, |
201 | unsigned int category, const char *function_name, | 201 | unsigned int category, const char *function_name, |
202 | const char *prefix, const char *format, ...); | 202 | const char *prefix, const char *format, ...); |
203 | __printf(3, 4) | 203 | __printf(2, 3) |
204 | void drm_printk(const char *level, unsigned int category, | 204 | void drm_dbg(unsigned int category, const char *format, ...); |
205 | const char *format, ...); | 205 | __printf(1, 2) |
206 | void drm_err(const char *format, ...); | ||
206 | 207 | ||
207 | /* Macros to make printk easier */ | 208 | /* Macros to make printk easier */ |
208 | 209 | ||
@@ -236,7 +237,7 @@ void drm_printk(const char *level, unsigned int category, | |||
236 | drm_dev_printk(dev, KERN_ERR, DRM_UT_NONE, __func__, " *ERROR*",\ | 237 | drm_dev_printk(dev, KERN_ERR, DRM_UT_NONE, __func__, " *ERROR*",\ |
237 | fmt, ##__VA_ARGS__) | 238 | fmt, ##__VA_ARGS__) |
238 | #define DRM_ERROR(fmt, ...) \ | 239 | #define DRM_ERROR(fmt, ...) \ |
239 | drm_printk(KERN_ERR, DRM_UT_NONE, fmt, ##__VA_ARGS__) | 240 | drm_err(fmt, ##__VA_ARGS__) |
240 | 241 | ||
241 | /** | 242 | /** |
242 | * Rate limited error output. Like DRM_ERROR() but won't flood the log. | 243 | * Rate limited error output. Like DRM_ERROR() but won't flood the log. |
@@ -279,40 +280,40 @@ void drm_printk(const char *level, unsigned int category, | |||
279 | drm_dev_printk(dev, KERN_DEBUG, DRM_UT_CORE, __func__, "", fmt, \ | 280 | drm_dev_printk(dev, KERN_DEBUG, DRM_UT_CORE, __func__, "", fmt, \ |
280 | ##args) | 281 | ##args) |
281 | #define DRM_DEBUG(fmt, ...) \ | 282 | #define DRM_DEBUG(fmt, ...) \ |
282 | drm_printk(KERN_DEBUG, DRM_UT_CORE, fmt, ##__VA_ARGS__) | 283 | drm_dbg(DRM_UT_CORE, fmt, ##__VA_ARGS__) |
283 | 284 | ||
284 | #define DRM_DEV_DEBUG_DRIVER(dev, fmt, args...) \ | 285 | #define DRM_DEV_DEBUG_DRIVER(dev, fmt, args...) \ |
285 | drm_dev_printk(dev, KERN_DEBUG, DRM_UT_DRIVER, __func__, "", \ | 286 | drm_dev_printk(dev, KERN_DEBUG, DRM_UT_DRIVER, __func__, "", \ |
286 | fmt, ##args) | 287 | fmt, ##args) |
287 | #define DRM_DEBUG_DRIVER(fmt, ...) \ | 288 | #define DRM_DEBUG_DRIVER(fmt, ...) \ |
288 | drm_printk(KERN_DEBUG, DRM_UT_DRIVER, fmt, ##__VA_ARGS__) | 289 | drm_dbg(DRM_UT_DRIVER, fmt, ##__VA_ARGS__) |
289 | 290 | ||
290 | #define DRM_DEV_DEBUG_KMS(dev, fmt, args...) \ | 291 | #define DRM_DEV_DEBUG_KMS(dev, fmt, args...) \ |
291 | drm_dev_printk(dev, KERN_DEBUG, DRM_UT_KMS, __func__, "", fmt, \ | 292 | drm_dev_printk(dev, KERN_DEBUG, DRM_UT_KMS, __func__, "", fmt, \ |
292 | ##args) | 293 | ##args) |
293 | #define DRM_DEBUG_KMS(fmt, ...) \ | 294 | #define DRM_DEBUG_KMS(fmt, ...) \ |
294 | drm_printk(KERN_DEBUG, DRM_UT_KMS, fmt, ##__VA_ARGS__) | 295 | drm_dbg(DRM_UT_KMS, fmt, ##__VA_ARGS__) |
295 | 296 | ||
296 | #define DRM_DEV_DEBUG_PRIME(dev, fmt, args...) \ | 297 | #define DRM_DEV_DEBUG_PRIME(dev, fmt, args...) \ |
297 | drm_dev_printk(dev, KERN_DEBUG, DRM_UT_PRIME, __func__, "", \ | 298 | drm_dev_printk(dev, KERN_DEBUG, DRM_UT_PRIME, __func__, "", \ |
298 | fmt, ##args) | 299 | fmt, ##args) |
299 | #define DRM_DEBUG_PRIME(fmt, ...) \ | 300 | #define DRM_DEBUG_PRIME(fmt, ...) \ |
300 | drm_printk(KERN_DEBUG, DRM_UT_PRIME, fmt, ##__VA_ARGS__) | 301 | drm_dbg(DRM_UT_PRIME, fmt, ##__VA_ARGS__) |
301 | 302 | ||
302 | #define DRM_DEV_DEBUG_ATOMIC(dev, fmt, args...) \ | 303 | #define DRM_DEV_DEBUG_ATOMIC(dev, fmt, args...) \ |
303 | drm_dev_printk(dev, KERN_DEBUG, DRM_UT_ATOMIC, __func__, "", \ | 304 | drm_dev_printk(dev, KERN_DEBUG, DRM_UT_ATOMIC, __func__, "", \ |
304 | fmt, ##args) | 305 | fmt, ##args) |
305 | #define DRM_DEBUG_ATOMIC(fmt, ...) \ | 306 | #define DRM_DEBUG_ATOMIC(fmt, ...) \ |
306 | drm_printk(KERN_DEBUG, DRM_UT_ATOMIC, fmt, ##__VA_ARGS__) | 307 | drm_dbg(DRM_UT_ATOMIC, fmt, ##__VA_ARGS__) |
307 | 308 | ||
308 | #define DRM_DEV_DEBUG_VBL(dev, fmt, args...) \ | 309 | #define DRM_DEV_DEBUG_VBL(dev, fmt, args...) \ |
309 | drm_dev_printk(dev, KERN_DEBUG, DRM_UT_VBL, __func__, "", fmt, \ | 310 | drm_dev_printk(dev, KERN_DEBUG, DRM_UT_VBL, __func__, "", fmt, \ |
310 | ##args) | 311 | ##args) |
311 | #define DRM_DEBUG_VBL(fmt, ...) \ | 312 | #define DRM_DEBUG_VBL(fmt, ...) \ |
312 | drm_printk(KERN_DEBUG, DRM_UT_VBL, fmt, ##__VA_ARGS__) | 313 | drm_dbg(DRM_UT_VBL, fmt, ##__VA_ARGS__) |
313 | 314 | ||
314 | #define DRM_DEBUG_LEASE(fmt, ...) \ | 315 | #define DRM_DEBUG_LEASE(fmt, ...) \ |
315 | drm_printk(KERN_DEBUG, DRM_UT_LEASE, fmt, ##__VA_ARGS__) | 316 | drm_dbg(DRM_UT_LEASE, fmt, ##__VA_ARGS__) |
316 | 317 | ||
317 | #define _DRM_DEV_DEFINE_DEBUG_RATELIMITED(dev, level, fmt, args...) \ | 318 | #define _DRM_DEV_DEFINE_DEBUG_RATELIMITED(dev, level, fmt, args...) \ |
318 | ({ \ | 319 | ({ \ |