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 30 static inline void intel_overlay_setup(struct intel_display *display) 31 { 32 } 33 static inline bool intel_overlay_available(struct intel_display *display) 34 { 35 return false; 36 } 37 static inline void intel_overlay_cleanup(struct intel_display *display) 38 { 39 } 40 static inline int intel_overlay_switch_off(struct intel_overlay *overlay) 41 { 42 return 0; 43 } 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 } 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 } 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 * 66 intel_overlay_snapshot_capture(struct intel_display *display) 67 { 68 return NULL; 69 } 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