#include <linux/clk.h>
#include <drm/drm_atomic.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_device.h>
#include <drm/drm_print.h>
#include <drm/drm_probe_helper.h>
#include <drm/drm_vblank.h>
#include "sti_compositor.h"
#include "sti_crtc.h"
#include "sti_drv.h"
#include "sti_vid.h"
#include "sti_vtg.h"
static void sti_crtc_atomic_enable(struct drm_crtc *crtc,
struct drm_atomic_state *state)
{ … }
static void sti_crtc_atomic_disable(struct drm_crtc *crtc,
struct drm_atomic_state *state)
{ … }
static int
sti_crtc_mode_set(struct drm_crtc *crtc, struct drm_display_mode *mode)
{ … }
static void sti_crtc_disable(struct drm_crtc *crtc)
{ … }
static void
sti_crtc_mode_set_nofb(struct drm_crtc *crtc)
{ … }
static void sti_crtc_atomic_flush(struct drm_crtc *crtc,
struct drm_atomic_state *state)
{ … }
static const struct drm_crtc_helper_funcs sti_crtc_helper_funcs = …;
static void sti_crtc_destroy(struct drm_crtc *crtc)
{ … }
static int sti_crtc_set_property(struct drm_crtc *crtc,
struct drm_property *property,
uint64_t val)
{ … }
int sti_crtc_vblank_cb(struct notifier_block *nb,
unsigned long event, void *data)
{ … }
static int sti_crtc_enable_vblank(struct drm_crtc *crtc)
{ … }
static void sti_crtc_disable_vblank(struct drm_crtc *crtc)
{ … }
static int sti_crtc_late_register(struct drm_crtc *crtc)
{ … }
static const struct drm_crtc_funcs sti_crtc_funcs = …;
bool sti_crtc_is_main(struct drm_crtc *crtc)
{ … }
int sti_crtc_init(struct drm_device *drm_dev, struct sti_mixer *mixer,
struct drm_plane *primary, struct drm_plane *cursor)
{ … }