#include <drm/drm_atomic.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_crtc.h>
#include <drm/drm_fb_dma_helper.h>
#include <drm/drm_fourcc.h>
#include <drm/drm_framebuffer.h>
#include <drm/drm_gem_dma_helper.h>
#include "shmob_drm_drv.h"
#include "shmob_drm_kms.h"
#include "shmob_drm_plane.h"
#include "shmob_drm_regs.h"
struct shmob_drm_plane { … };
struct shmob_drm_plane_state { … };
static inline struct shmob_drm_plane *to_shmob_plane(struct drm_plane *plane)
{ … }
static inline struct shmob_drm_plane_state *to_shmob_plane_state(struct drm_plane_state *state)
{ … }
static void shmob_drm_plane_compute_base(struct shmob_drm_plane_state *sstate)
{ … }
static void shmob_drm_primary_plane_setup(struct shmob_drm_plane *splane,
struct drm_plane_state *state)
{ … }
static void shmob_drm_overlay_plane_setup(struct shmob_drm_plane *splane,
struct drm_plane_state *state)
{ … }
static int shmob_drm_plane_atomic_check(struct drm_plane *plane,
struct drm_atomic_state *state)
{ … }
static void shmob_drm_plane_atomic_update(struct drm_plane *plane,
struct drm_atomic_state *state)
{ … }
static void shmob_drm_plane_atomic_disable(struct drm_plane *plane,
struct drm_atomic_state *state)
{ … }
static struct drm_plane_state *
shmob_drm_plane_atomic_duplicate_state(struct drm_plane *plane)
{ … }
static void shmob_drm_plane_atomic_destroy_state(struct drm_plane *plane,
struct drm_plane_state *state)
{ … }
static void shmob_drm_plane_reset(struct drm_plane *plane)
{ … }
static const struct drm_plane_helper_funcs shmob_drm_plane_helper_funcs = …;
static const struct drm_plane_funcs shmob_drm_plane_funcs = …;
static const uint32_t formats[] = …;
struct drm_plane *shmob_drm_plane_create(struct shmob_drm_device *sdev,
enum drm_plane_type type,
unsigned int index)
{ … }