#include <drm/drm_atomic.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_blend.h>
#include <drm/drm_framebuffer.h>
#include <drm/exynos_drm.h>
#include "exynos_drm_crtc.h"
#include "exynos_drm_drv.h"
#include "exynos_drm_fb.h"
#include "exynos_drm_gem.h"
#include "exynos_drm_plane.h"
static int exynos_plane_get_size(int start, unsigned length, unsigned last)
{ … }
static void exynos_plane_mode_set(struct exynos_drm_plane_state *exynos_state)
{ … }
static void exynos_drm_plane_reset(struct drm_plane *plane)
{ … }
static struct drm_plane_state *
exynos_drm_plane_duplicate_state(struct drm_plane *plane)
{ … }
static void exynos_drm_plane_destroy_state(struct drm_plane *plane,
struct drm_plane_state *old_state)
{ … }
static struct drm_plane_funcs exynos_plane_funcs = …;
static int
exynos_drm_plane_check_format(const struct exynos_drm_plane_config *config,
struct exynos_drm_plane_state *state)
{ … }
static int
exynos_drm_plane_check_size(const struct exynos_drm_plane_config *config,
struct exynos_drm_plane_state *state)
{ … }
static int exynos_plane_atomic_check(struct drm_plane *plane,
struct drm_atomic_state *state)
{ … }
static void exynos_plane_atomic_update(struct drm_plane *plane,
struct drm_atomic_state *state)
{ … }
static void exynos_plane_atomic_disable(struct drm_plane *plane,
struct drm_atomic_state *state)
{ … }
static const struct drm_plane_helper_funcs plane_helper_funcs = …;
static void exynos_plane_attach_zpos_property(struct drm_plane *plane,
int zpos, bool immutable)
{ … }
int exynos_plane_init(struct drm_device *dev,
struct exynos_drm_plane *exynos_plane, unsigned int index,
const struct exynos_drm_plane_config *config)
{ … }