xref: /linux/drivers/gpu/drm/i915/display/intel_overlay.h (revision 7a9b709e7cc5ce1ffb84ce07bf6d157e1de758df)
1 /* SPDX-License-Identifier: MIT */
2 /*
3  * Copyright © 2019 Intel Corporation
4  */
5 
6 #ifndef __INTEL_OVERLAY_H__
7 #define __INTEL_OVERLAY_H__
8 
9 #include <linux/types.h>
10 
11 struct drm_device;
12 struct drm_file;
13 struct drm_printer;
14 struct intel_display;
15 struct intel_overlay;
16 struct intel_overlay_snapshot;
17 
18 #ifdef I915
19 void intel_overlay_setup(struct intel_display *display);
20 bool intel_overlay_available(struct intel_display *display);
21 void intel_overlay_cleanup(struct intel_display *display);
22 int intel_overlay_switch_off(struct intel_overlay *overlay);
23 int intel_overlay_put_image_ioctl(struct drm_device *dev, void *data,
24 				  struct drm_file *file_priv);
25 int intel_overlay_attrs_ioctl(struct drm_device *dev, void *data,
26 			      struct drm_file *file_priv);
27 void intel_overlay_reset(struct intel_display *display);
28 #else
29 static inline void intel_overlay_setup(struct intel_display *display)
30 {
31 }
32 static inline bool intel_overlay_available(struct intel_display *display)
33 {
34 	return false;
35 }
36 static inline void intel_overlay_cleanup(struct intel_display *display)
37 {
38 }
39 static inline int intel_overlay_switch_off(struct intel_overlay *overlay)
40 {
41 	return 0;
42 }
43 static inline int intel_overlay_put_image_ioctl(struct drm_device *dev, void *data,
44 						struct drm_file *file_priv)
45 {
46 	return 0;
47 }
48 static inline int intel_overlay_attrs_ioctl(struct drm_device *dev, void *data,
49 					    struct drm_file *file_priv)
50 {
51 	return 0;
52 }
53 static inline void intel_overlay_reset(struct intel_display *display)
54 {
55 }
56 #endif
57 
58 #if IS_ENABLED(CONFIG_DRM_I915_CAPTURE_ERROR) && defined(I915)
59 struct intel_overlay_snapshot *
60 intel_overlay_snapshot_capture(struct intel_display *display);
61 void intel_overlay_snapshot_print(const struct intel_overlay_snapshot *error,
62 				  struct drm_printer *p);
63 #else
64 static inline struct intel_overlay_snapshot *
65 intel_overlay_snapshot_capture(struct intel_display *display)
66 {
67 	return NULL;
68 }
69 static inline void intel_overlay_snapshot_print(const struct intel_overlay_snapshot *error,
70 						struct drm_printer *p)
71 {
72 }
73 #endif
74 
75 #endif /* __INTEL_OVERLAY_H__ */
76