#include <linux/clk.h>
#include <linux/mutex.h>
#include <linux/platform_device.h>
#include <linux/reset.h>
#include <drm/drm_atomic.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_bridge.h>
#include <drm/drm_crtc.h>
#include <drm/drm_device.h>
#include <drm/drm_framebuffer.h>
#include <drm/drm_gem_dma_helper.h>
#include <drm/drm_vblank.h>
#include "rzg2l_du_crtc.h"
#include "rzg2l_du_drv.h"
#include "rzg2l_du_encoder.h"
#include "rzg2l_du_kms.h"
#include "rzg2l_du_vsp.h"
#define DU_MCR0 …
#define DU_MCR0_DPI_OE …
#define DU_MCR0_DI_EN …
#define DU_DITR0 …
#define DU_DITR0_DEMD_HIGH …
#define DU_DITR0_VSPOL …
#define DU_DITR0_HSPOL …
#define DU_DITR1 …
#define DU_DITR1_VSA(x) …
#define DU_DITR1_VACTIVE(x) …
#define DU_DITR2 …
#define DU_DITR2_VBP(x) …
#define DU_DITR2_VFP(x) …
#define DU_DITR3 …
#define DU_DITR3_HSA(x) …
#define DU_DITR3_HACTIVE(x) …
#define DU_DITR4 …
#define DU_DITR4_HBP(x) …
#define DU_DITR4_HFP(x) …
#define DU_MCR1 …
#define DU_MCR1_PB_AUTOCLR …
#define DU_PBCR0 …
#define DU_PBCR0_PB_DEP(x) …
static void rzg2l_du_crtc_set_display_timing(struct rzg2l_du_crtc *rcrtc)
{ … }
void rzg2l_du_crtc_finish_page_flip(struct rzg2l_du_crtc *rcrtc)
{ … }
static bool rzg2l_du_crtc_page_flip_pending(struct rzg2l_du_crtc *rcrtc)
{ … }
static void rzg2l_du_crtc_wait_page_flip(struct rzg2l_du_crtc *rcrtc)
{ … }
static void rzg2l_du_crtc_setup(struct rzg2l_du_crtc *rcrtc)
{ … }
static int rzg2l_du_crtc_get(struct rzg2l_du_crtc *rcrtc)
{ … }
static void rzg2l_du_crtc_put(struct rzg2l_du_crtc *rcrtc)
{ … }
static void rzg2l_du_start_stop(struct rzg2l_du_crtc *rcrtc, bool start)
{ … }
static void rzg2l_du_crtc_start(struct rzg2l_du_crtc *rcrtc)
{ … }
static void rzg2l_du_crtc_stop(struct rzg2l_du_crtc *rcrtc)
{ … }
static void rzg2l_du_crtc_atomic_enable(struct drm_crtc *crtc,
struct drm_atomic_state *state)
{ … }
static void rzg2l_du_crtc_atomic_disable(struct drm_crtc *crtc,
struct drm_atomic_state *state)
{ … }
static void rzg2l_du_crtc_atomic_flush(struct drm_crtc *crtc,
struct drm_atomic_state *state)
{ … }
static const struct drm_crtc_helper_funcs crtc_helper_funcs = …;
static struct drm_crtc_state *
rzg2l_du_crtc_atomic_duplicate_state(struct drm_crtc *crtc)
{ … }
static void rzg2l_du_crtc_atomic_destroy_state(struct drm_crtc *crtc,
struct drm_crtc_state *state)
{ … }
static void rzg2l_du_crtc_reset(struct drm_crtc *crtc)
{ … }
static int rzg2l_du_crtc_enable_vblank(struct drm_crtc *crtc)
{ … }
static void rzg2l_du_crtc_disable_vblank(struct drm_crtc *crtc)
{ … }
static const struct drm_crtc_funcs crtc_funcs_rz = …;
int rzg2l_du_crtc_create(struct rzg2l_du_device *rcdu)
{ … }