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
intel_overlay_setup(struct intel_display * display)29 static inline void intel_overlay_setup(struct intel_display *display)
30 {
31 }
intel_overlay_available(struct intel_display * display)32 static inline bool intel_overlay_available(struct intel_display *display)
33 {
34 return false;
35 }
intel_overlay_cleanup(struct intel_display * display)36 static inline void intel_overlay_cleanup(struct intel_display *display)
37 {
38 }
intel_overlay_switch_off(struct intel_overlay * overlay)39 static inline int intel_overlay_switch_off(struct intel_overlay *overlay)
40 {
41 return 0;
42 }
intel_overlay_put_image_ioctl(struct drm_device * dev,void * data,struct drm_file * file_priv)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 }
intel_overlay_attrs_ioctl(struct drm_device * dev,void * data,struct drm_file * file_priv)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 }
intel_overlay_reset(struct intel_display * display)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 *
intel_overlay_snapshot_capture(struct intel_display * display)65 intel_overlay_snapshot_capture(struct intel_display *display)
66 {
67 return NULL;
68 }
intel_overlay_snapshot_print(const struct intel_overlay_snapshot * error,struct drm_printer * p)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