#include <linux/clk.h>
#include <linux/of_graph.h>
#include <linux/platform_data/simplefb.h>
#include <video/videomode.h>
#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_framebuffer.h>
#include <drm/drm_gem_dma_helper.h>
#include <drm/drm_of.h>
#include <drm/drm_probe_helper.h>
#include <drm/drm_vblank.h>
#include "hdlcd_drv.h"
#include "hdlcd_regs.h"
static void hdlcd_crtc_cleanup(struct drm_crtc *crtc)
{ … }
static int hdlcd_crtc_enable_vblank(struct drm_crtc *crtc)
{ … }
static void hdlcd_crtc_disable_vblank(struct drm_crtc *crtc)
{ … }
static const struct drm_crtc_funcs hdlcd_crtc_funcs = …;
static struct simplefb_format supported_formats[] = …;
static int hdlcd_set_pxl_fmt(struct drm_crtc *crtc)
{ … }
static void hdlcd_crtc_mode_set_nofb(struct drm_crtc *crtc)
{ … }
static void hdlcd_crtc_atomic_enable(struct drm_crtc *crtc,
struct drm_atomic_state *state)
{ … }
static void hdlcd_crtc_atomic_disable(struct drm_crtc *crtc,
struct drm_atomic_state *state)
{ … }
static enum drm_mode_status hdlcd_crtc_mode_valid(struct drm_crtc *crtc,
const struct drm_display_mode *mode)
{ … }
static void hdlcd_crtc_atomic_begin(struct drm_crtc *crtc,
struct drm_atomic_state *state)
{ … }
static const struct drm_crtc_helper_funcs hdlcd_crtc_helper_funcs = …;
static int hdlcd_plane_atomic_check(struct drm_plane *plane,
struct drm_atomic_state *state)
{ … }
static void hdlcd_plane_atomic_update(struct drm_plane *plane,
struct drm_atomic_state *state)
{ … }
static const struct drm_plane_helper_funcs hdlcd_plane_helper_funcs = …;
static const struct drm_plane_funcs hdlcd_plane_funcs = …;
static struct drm_plane *hdlcd_plane_init(struct drm_device *drm)
{ … }
int hdlcd_setup_crtc(struct drm_device *drm)
{ … }