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_i915_private;
14 struct drm_printer;
15 struct intel_display;
16 struct intel_overlay;
17 struct intel_overlay_snapshot;
18
19 #ifdef I915
20 void intel_overlay_setup(struct intel_display *display);
21 bool intel_overlay_available(struct intel_display *display);
22 void intel_overlay_cleanup(struct intel_display *display);
23 int intel_overlay_switch_off(struct intel_overlay *overlay);
24 int intel_overlay_put_image_ioctl(struct drm_device *dev, void *data,
25 struct drm_file *file_priv);
26 int intel_overlay_attrs_ioctl(struct drm_device *dev, void *data,
27 struct drm_file *file_priv);
28 void intel_overlay_reset(struct intel_display *display);
29 #else
intel_overlay_setup(struct intel_display * display)30 static inline void intel_overlay_setup(struct intel_display *display)
31 {
32 }
intel_overlay_available(struct intel_display * display)33 static inline bool intel_overlay_available(struct intel_display *display)
34 {
35 return false;
36 }
intel_overlay_cleanup(struct intel_display * display)37 static inline void intel_overlay_cleanup(struct intel_display *display)
38 {
39 }
intel_overlay_switch_off(struct intel_overlay * overlay)40 static inline int intel_overlay_switch_off(struct intel_overlay *overlay)
41 {
42 return 0;
43 }
intel_overlay_put_image_ioctl(struct drm_device * dev,void * data,struct drm_file * file_priv)44 static inline int intel_overlay_put_image_ioctl(struct drm_device *dev, void *data,
45 struct drm_file *file_priv)
46 {
47 return 0;
48 }
intel_overlay_attrs_ioctl(struct drm_device * dev,void * data,struct drm_file * file_priv)49 static inline int intel_overlay_attrs_ioctl(struct drm_device *dev, void *data,
50 struct drm_file *file_priv)
51 {
52 return 0;
53 }
intel_overlay_reset(struct intel_display * display)54 static inline void intel_overlay_reset(struct intel_display *display)
55 {
56 }
57 #endif
58
59 #if IS_ENABLED(CONFIG_DRM_I915_CAPTURE_ERROR) && defined(I915)
60 struct intel_overlay_snapshot *
61 intel_overlay_snapshot_capture(struct intel_display *display);
62 void intel_overlay_snapshot_print(const struct intel_overlay_snapshot *error,
63 struct drm_printer *p);
64 #else
65 static inline struct intel_overlay_snapshot *
intel_overlay_snapshot_capture(struct intel_display * display)66 intel_overlay_snapshot_capture(struct intel_display *display)
67 {
68 return NULL;
69 }
intel_overlay_snapshot_print(const struct intel_overlay_snapshot * error,struct drm_printer * p)70 static inline void intel_overlay_snapshot_print(const struct intel_overlay_snapshot *error,
71 struct drm_printer *p)
72 {
73 }
74 #endif
75
76 #endif /* __INTEL_OVERLAY_H__ */
77