diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gk20a/gk20a_allocator.h')
-rw-r--r-- | drivers/gpu/nvgpu/gk20a/gk20a_allocator.h | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/drivers/gpu/nvgpu/gk20a/gk20a_allocator.h b/drivers/gpu/nvgpu/gk20a/gk20a_allocator.h index a25f9850..5d6b9426 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a_allocator.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a_allocator.h | |||
@@ -69,6 +69,7 @@ struct gk20a_allocator { | |||
69 | const struct gk20a_allocator_ops *ops; | 69 | const struct gk20a_allocator_ops *ops; |
70 | 70 | ||
71 | struct dentry *debugfs_entry; | 71 | struct dentry *debugfs_entry; |
72 | bool debug; /* Control for debug msgs. */ | ||
72 | }; | 73 | }; |
73 | 74 | ||
74 | /* | 75 | /* |
@@ -124,9 +125,19 @@ void gk20a_alloc_print_stats(struct gk20a_allocator *a, | |||
124 | void gk20a_init_alloc_debug(struct gk20a_allocator *a); | 125 | void gk20a_init_alloc_debug(struct gk20a_allocator *a); |
125 | void gk20a_fini_alloc_debug(struct gk20a_allocator *a); | 126 | void gk20a_fini_alloc_debug(struct gk20a_allocator *a); |
126 | int __gk20a_alloc_common_init(struct gk20a_allocator *a, | 127 | int __gk20a_alloc_common_init(struct gk20a_allocator *a, |
127 | const char *name, void *priv, | 128 | const char *name, void *priv, bool dbg, |
128 | const struct gk20a_allocator_ops *ops); | 129 | const struct gk20a_allocator_ops *ops); |
129 | 130 | ||
131 | static inline void gk20a_alloc_enable_dbg(struct gk20a_allocator *a) | ||
132 | { | ||
133 | a->debug = true; | ||
134 | } | ||
135 | |||
136 | static inline void gk20a_alloc_disable_dbg(struct gk20a_allocator *a) | ||
137 | { | ||
138 | a->debug = false; | ||
139 | } | ||
140 | |||
130 | /* | 141 | /* |
131 | * Debug stuff. | 142 | * Debug stuff. |
132 | */ | 143 | */ |
@@ -154,12 +165,24 @@ void gk20a_alloc_debugfs_init(struct platform_device *pdev); | |||
154 | alloc_dbg(allocator, fmt, ##arg); \ | 165 | alloc_dbg(allocator, fmt, ##arg); \ |
155 | } while (0) | 166 | } while (0) |
156 | 167 | ||
168 | #define __alloc_dbg(a, fmt, arg...) \ | ||
169 | pr_info("%-25s %25s() " fmt, (a)->name, __func__, ##arg) | ||
170 | |||
157 | #if defined(ALLOCATOR_DEBUG) | 171 | #if defined(ALLOCATOR_DEBUG) |
158 | #define alloc_dbg(allocator, format, arg...) \ | 172 | /* |
159 | pr_info("%-25s %25s() " format, \ | 173 | * Always print the debug messages... |
160 | allocator->name, __func__, ##arg) | 174 | */ |
175 | #define alloc_dbg(a, fmt, arg...) __alloc_dbg(a, fmt, ##arg) | ||
161 | #else | 176 | #else |
162 | #define alloc_dbg(allocator, format, arg...) | 177 | /* |
178 | * Only print debug messages if debug is enabled for a given allocator. | ||
179 | */ | ||
180 | #define alloc_dbg(a, fmt, arg...) \ | ||
181 | do { \ | ||
182 | if ((a)->debug) \ | ||
183 | __alloc_dbg((a), fmt, ##arg); \ | ||
184 | } while (0) | ||
185 | |||
163 | #endif | 186 | #endif |
164 | 187 | ||
165 | #endif /* GK20A_ALLOCATOR_H */ | 188 | #endif /* GK20A_ALLOCATOR_H */ |