Commit | Line | Data |
---|---|---|
d501b1d2 CW |
1 | /* |
2 | * Copyright © 2016 Intel Corporation | |
3 | * | |
4 | * Permission is hereby granted, free of charge, to any person obtaining a | |
5 | * copy of this software and associated documentation files (the "Software"), | |
6 | * to deal in the Software without restriction, including without limitation | |
7 | * the rights to use, copy, modify, merge, publish, distribute, sublicense, | |
8 | * and/or sell copies of the Software, and to permit persons to whom the | |
9 | * Software is furnished to do so, subject to the following conditions: | |
10 | * | |
11 | * The above copyright notice and this permission notice (including the next | |
12 | * paragraph) shall be included in all copies or substantial portions of the | |
13 | * Software. | |
14 | * | |
15 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
16 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
17 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | |
18 | * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
19 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | |
20 | * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS | |
21 | * IN THE SOFTWARE. | |
22 | * | |
23 | */ | |
24 | ||
25 | #ifndef __I915_GEM_H__ | |
26 | #define __I915_GEM_H__ | |
27 | ||
47979480 CW |
28 | #include <linux/bug.h> |
29 | ||
e4d2006f CW |
30 | struct drm_i915_private; |
31 | ||
d501b1d2 | 32 | #ifdef CONFIG_DRM_I915_DEBUG_GEM |
d5653ec3 | 33 | #define GEM_BUG_ON(condition) do { if (unlikely((condition))) { \ |
128326a1 CW |
34 | pr_err("%s:%d GEM_BUG_ON(%s)\n", \ |
35 | __func__, __LINE__, __stringify(condition)); \ | |
36 | GEM_TRACE("%s:%d GEM_BUG_ON(%s)\n", \ | |
37 | __func__, __LINE__, __stringify(condition)); \ | |
d5653ec3 MK |
38 | BUG(); \ |
39 | } \ | |
40 | } while(0) | |
17cfde60 | 41 | #define GEM_WARN_ON(expr) WARN_ON(expr) |
eca56a35 | 42 | |
ae9a043b CW |
43 | #define GEM_DEBUG_DECL(var) var |
44 | #define GEM_DEBUG_EXEC(expr) expr | |
45 | #define GEM_DEBUG_BUG_ON(expr) GEM_BUG_ON(expr) | |
eca56a35 | 46 | |
d501b1d2 | 47 | #else |
4cfa20c8 | 48 | #define GEM_BUG_ON(expr) BUILD_BUG_ON_INVALID(expr) |
17cfde60 | 49 | #define GEM_WARN_ON(expr) (BUILD_BUG_ON_INVALID(expr), 0) |
eca56a35 | 50 | |
ae9a043b CW |
51 | #define GEM_DEBUG_DECL(var) |
52 | #define GEM_DEBUG_EXEC(expr) do { } while (0) | |
53 | #define GEM_DEBUG_BUG_ON(expr) | |
d501b1d2 CW |
54 | #endif |
55 | ||
bccd3b83 CW |
56 | #if IS_ENABLED(CONFIG_DRM_I915_TRACE_GEM) |
57 | #define GEM_TRACE(...) trace_printk(__VA_ARGS__) | |
629820fc | 58 | #define GEM_TRACE_DUMP() ftrace_dump(DUMP_ALL) |
bccd3b83 CW |
59 | #else |
60 | #define GEM_TRACE(...) do { } while (0) | |
629820fc | 61 | #define GEM_TRACE_DUMP() do { } while (0) |
bccd3b83 CW |
62 | #endif |
63 | ||
022d3093 | 64 | #define I915_NUM_ENGINES 8 |
73cb9701 | 65 | |
e4d2006f CW |
66 | void i915_gem_park(struct drm_i915_private *i915); |
67 | void i915_gem_unpark(struct drm_i915_private *i915); | |
68 | ||
d501b1d2 | 69 | #endif /* __I915_GEM_H__ */ |