#include <drm/drm_atomic.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_crtc.h>
#include <drm/drm_gem_dma_helper.h>
#include <drm/drm_vblank.h>
#include "tidss_crtc.h"
#include "tidss_dispc.h"
#include "tidss_drv.h"
#include "tidss_irq.h"
#include "tidss_plane.h"
static void tidss_crtc_finish_page_flip(struct tidss_crtc *tcrtc)
{ … }
void tidss_crtc_vblank_irq(struct drm_crtc *crtc)
{ … }
void tidss_crtc_framedone_irq(struct drm_crtc *crtc)
{ … }
void tidss_crtc_error_irq(struct drm_crtc *crtc, u64 irqstatus)
{ … }
static int tidss_crtc_atomic_check(struct drm_crtc *crtc,
struct drm_atomic_state *state)
{ … }
static void tidss_crtc_position_planes(struct tidss_device *tidss,
struct drm_crtc *crtc,
struct drm_crtc_state *old_state,
bool newmodeset)
{ … }
static void tidss_crtc_atomic_flush(struct drm_crtc *crtc,
struct drm_atomic_state *state)
{ … }
static void tidss_crtc_atomic_enable(struct drm_crtc *crtc,
struct drm_atomic_state *state)
{ … }
static void tidss_crtc_atomic_disable(struct drm_crtc *crtc,
struct drm_atomic_state *state)
{ … }
static
enum drm_mode_status tidss_crtc_mode_valid(struct drm_crtc *crtc,
const struct drm_display_mode *mode)
{ … }
static const struct drm_crtc_helper_funcs tidss_crtc_helper_funcs = …;
static int tidss_crtc_enable_vblank(struct drm_crtc *crtc)
{ … }
static void tidss_crtc_disable_vblank(struct drm_crtc *crtc)
{ … }
static void tidss_crtc_reset(struct drm_crtc *crtc)
{ … }
static struct drm_crtc_state *tidss_crtc_duplicate_state(struct drm_crtc *crtc)
{ … }
static void tidss_crtc_destroy(struct drm_crtc *crtc)
{ … }
static const struct drm_crtc_funcs tidss_crtc_funcs = …;
struct tidss_crtc *tidss_crtc_create(struct tidss_device *tidss,
u32 hw_videoport,
struct drm_plane *primary)
{ … }