summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/i915_globals.h
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2019-03-05 21:38:30 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2019-03-06 10:00:50 +0000
commit103b76eeff2e86cad489a54e6003d0173df76bde (patch)
treea33db60570ef59918a2b2fb9c62532c075e2844a /drivers/gpu/drm/i915/i915_globals.h
parentd846325ad0e5cd06f441299cdbec6ab8ba3a3c45 (diff)
drm/i915: Use i915_global_register()
Rather than manually add every new global into each hook, use i915_global_register() function and keep a list of registered globals to invoke instead. However, I haven't found a way for random drivers to add an .init table to avoid having to manually add ourselves to i915_globals_init() each time. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> Link: https://patchwork.freedesktop.org/patch/msgid/20190305213830.18094-1-chris@chris-wilson.co.uk Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915/i915_globals.h')
-rw-r--r--drivers/gpu/drm/i915/i915_globals.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_globals.h b/drivers/gpu/drm/i915/i915_globals.h
index e468f0413a73..a45529022a42 100644
--- a/drivers/gpu/drm/i915/i915_globals.h
+++ b/drivers/gpu/drm/i915/i915_globals.h
@@ -7,9 +7,28 @@
#ifndef _I915_GLOBALS_H_
#define _I915_GLOBALS_H_
+typedef void (*i915_global_func_t)(void);
+
+struct i915_global {
+ struct list_head link;
+
+ i915_global_func_t shrink;
+ i915_global_func_t exit;
+};
+
+void i915_global_register(struct i915_global *global);
+
int i915_globals_init(void);
void i915_globals_park(void);
void i915_globals_unpark(void);
void i915_globals_exit(void);
+/* constructors */
+int i915_global_active_init(void);
+int i915_global_context_init(void);
+int i915_global_objects_init(void);
+int i915_global_request_init(void);
+int i915_global_scheduler_init(void);
+int i915_global_vma_init(void);
+
#endif /* _I915_GLOBALS_H_ */