aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoe Perches <joe@perches.com>2018-03-13 18:02:15 -0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2018-03-16 03:41:57 -0400
commit99a954874e7b9f0c8058476575593b3beb5731a5 (patch)
tree0e64518e0beb50fc8dedfb72a3324a7afbd095f4
parent7022a4a0ece6122e337e1c23af91128398209c8d (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.c28
-rw-r--r--drivers/gpu/drm/i915/intel_display.c15
-rw-r--r--include/drm/drm_print.h27
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}
90EXPORT_SYMBOL(drm_dev_printk); 90EXPORT_SYMBOL(drm_dev_printk);
91 91
92void drm_printk(const char *level, unsigned int category, 92void 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}
109EXPORT_SYMBOL(drm_dbg);
110
111void 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}
111EXPORT_SYMBOL(drm_printk); 125EXPORT_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,
11001static void __printf(3, 4) 11001static void __printf(3, 4)
11002pipe_config_err(bool adjust, const char *name, const char *format, ...) 11002pipe_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)
200void drm_dev_printk(const struct device *dev, const char *level, 200void 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)
204void drm_printk(const char *level, unsigned int category, 204void drm_dbg(unsigned int category, const char *format, ...);
205 const char *format, ...); 205__printf(1, 2)
206void 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({ \