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 16struct sunxi_engine; 17 18struct sun4i_layer { 19 struct drm_plane plane; 20 struct sun4i_drv *drv; 21 struct sun4i_backend *backend; 22 int id; 23}; 24 25struct sun4i_layer_state { 26 struct drm_plane_state state; 27 unsigned int pipe; 28 bool uses_frontend; 29}; 30 31static inline struct sun4i_layer * 32plane_to_sun4i_layer(struct drm_plane *plane) 33{ 34 return container_of(plane, struct sun4i_layer, plane); 35} 36 37static inline struct sun4i_layer_state * 38state_to_sun4i_layer_state(struct drm_plane_state *state) 39{ 40 return container_of(state, struct sun4i_layer_state, state); 41} 42 43struct drm_plane **sun4i_layers_init(struct drm_device *drm, 44 struct sunxi_engine *engine); 45 46#endif /* _SUN4I_LAYER_H_ */ 47