mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-24 19:45:06 +08:00
ca07b210bc
Now that we have a driver, we can make use of it. This is done by adding a flag to our custom plane state that will trigger whether we should use the frontend on that particular plane or not. The rest is just plumbing to set up the backend to not perform the DMA but receive its data from the frontend. Note that we're still not making any use of the frontend itself, as no one is setting the flag yet. Reviewed-by: Chen-Yu Tsai <wens@csie.org> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com> Link: https://patchwork.freedesktop.org/patch/msgid/cdffc25eab2d817820cc78cbd24f1f4b99902014.1516613040.git-series.maxime.ripard@free-electrons.com
46 lines
1.1 KiB
C
46 lines
1.1 KiB
C
/*
|
|
* Copyright (C) 2015 Free Electrons
|
|
* Copyright (C) 2015 NextThing Co
|
|
*
|
|
* Maxime Ripard <maxime.ripard@free-electrons.com>
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License as
|
|
* published by the Free Software Foundation; either version 2 of
|
|
* the License, or (at your option) any later version.
|
|
*/
|
|
|
|
#ifndef _SUN4I_LAYER_H_
|
|
#define _SUN4I_LAYER_H_
|
|
|
|
struct sunxi_engine;
|
|
|
|
struct sun4i_layer {
|
|
struct drm_plane plane;
|
|
struct sun4i_drv *drv;
|
|
struct sun4i_backend *backend;
|
|
int id;
|
|
};
|
|
|
|
struct sun4i_layer_state {
|
|
struct drm_plane_state state;
|
|
bool uses_frontend;
|
|
};
|
|
|
|
static inline struct sun4i_layer *
|
|
plane_to_sun4i_layer(struct drm_plane *plane)
|
|
{
|
|
return container_of(plane, struct sun4i_layer, plane);
|
|
}
|
|
|
|
static inline struct sun4i_layer_state *
|
|
state_to_sun4i_layer_state(struct drm_plane_state *state)
|
|
{
|
|
return container_of(state, struct sun4i_layer_state, state);
|
|
}
|
|
|
|
struct drm_plane **sun4i_layers_init(struct drm_device *drm,
|
|
struct sunxi_engine *engine);
|
|
|
|
#endif /* _SUN4I_LAYER_H_ */
|