1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * Copyright (C) 2018 Texas Instruments Incorporated - http://www.ti.com/ 4 * Author: Benoit Parrot <bparrot@ti.com> 5 */ 6 7 #ifndef __OMAPDRM_OVERLAY_H__ 8 #define __OMAPDRM_OVERLAY_H__ 9 10 #include <linux/types.h> 11 12 enum drm_plane_type; 13 14 struct drm_device; 15 struct drm_mode_object; 16 struct drm_plane; 17 18 /* Used to associate a HW overlay/plane to a plane */ 19 struct omap_hw_overlay { 20 unsigned int idx; 21 22 const char *name; 23 enum omap_plane_id id; 24 25 enum omap_overlay_caps caps; 26 }; 27 28 int omap_hwoverlays_init(struct omap_drm_private *priv); 29 void omap_hwoverlays_destroy(struct omap_drm_private *priv); 30 int omap_overlay_assign(struct drm_atomic_state *s, struct drm_plane *plane, 31 u32 caps, u32 fourcc, struct omap_hw_overlay **overlay, 32 struct omap_hw_overlay **r_overlay); 33 void omap_overlay_release(struct drm_atomic_state *s, struct omap_hw_overlay *overlay); 34 void omap_overlay_update_state(struct omap_drm_private *priv, struct omap_hw_overlay *overlay); 35 #endif /* __OMAPDRM_OVERLAY_H__ */ 36