1 /* 2 * Copyright (C) 2015 Free Electrons 3 * Copyright (C) 2015 NextThing Co 4 * 5 * Maxime Ripard <maxime.ripard@free-electrons.com> 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License as 9 * published by the Free Software Foundation; either version 2 of 10 * the License, or (at your option) any later version. 11 */ 12 13 #ifndef _SUN4I_LAYER_H_ 14 #define _SUN4I_LAYER_H_ 15 16 struct sunxi_engine; 17 18 struct sun4i_layer { 19 struct drm_plane plane; 20 struct sun4i_drv *drv; 21 struct sun4i_backend *backend; 22 int id; 23 }; 24 25 struct sun4i_layer_state { 26 struct drm_plane_state state; 27 unsigned int pipe; 28 bool uses_frontend; 29 }; 30 31 static inline struct sun4i_layer * 32 plane_to_sun4i_layer(struct drm_plane *plane) 33 { 34 return container_of(plane, struct sun4i_layer, plane); 35 } 36 37 static inline struct sun4i_layer_state * 38 state_to_sun4i_layer_state(struct drm_plane_state *state) 39 { 40 return container_of(state, struct sun4i_layer_state, state); 41 } 42 43 struct drm_plane **sun4i_layers_init(struct drm_device *drm, 44 struct sunxi_engine *engine); 45 46 #endif /* _SUN4I_LAYER_H_ */ 47