linux/drivers/gpu/drm/sun4i/sun4i_crtc.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Copyright (C) 2015 Free Electrons
 * Copyright (C) 2015 NextThing Co
 *
 * Maxime Ripard <[email protected]>
 */

#include <linux/clk-provider.h>
#include <linux/ioport.h>
#include <linux/of_address.h>
#include <linux/of_graph.h>
#include <linux/of_irq.h>
#include <linux/regmap.h>

#include <video/videomode.h>

#include <drm/drm_atomic.h>
#include <drm/drm_atomic_helper.h>
#include <drm/drm_crtc.h>
#include <drm/drm_modes.h>
#include <drm/drm_print.h>
#include <drm/drm_probe_helper.h>
#include <drm/drm_vblank.h>

#include "sun4i_backend.h"
#include "sun4i_crtc.h"
#include "sun4i_drv.h"
#include "sunxi_engine.h"
#include "sun4i_tcon.h"

/*
 * While this isn't really working in the DRM theory, in practice we
 * can only ever have one encoder per TCON since we have a mux in our
 * TCON.
 */
static struct drm_encoder *sun4i_crtc_get_encoder(struct drm_crtc *crtc)
{}

static int sun4i_crtc_atomic_check(struct drm_crtc *crtc,
				    struct drm_atomic_state *state)
{}

static void sun4i_crtc_atomic_begin(struct drm_crtc *crtc,
				    struct drm_atomic_state *state)
{}

static void sun4i_crtc_atomic_flush(struct drm_crtc *crtc,
				    struct drm_atomic_state *state)
{}

static void sun4i_crtc_atomic_disable(struct drm_crtc *crtc,
				      struct drm_atomic_state *state)
{}

static void sun4i_crtc_atomic_enable(struct drm_crtc *crtc,
				     struct drm_atomic_state *state)
{}

static void sun4i_crtc_mode_set_nofb(struct drm_crtc *crtc)
{}

static const struct drm_crtc_helper_funcs sun4i_crtc_helper_funcs =;

static int sun4i_crtc_enable_vblank(struct drm_crtc *crtc)
{}

static void sun4i_crtc_disable_vblank(struct drm_crtc *crtc)
{}

static const struct drm_crtc_funcs sun4i_crtc_funcs =;

struct sun4i_crtc *sun4i_crtc_init(struct drm_device *drm,
				   struct sunxi_engine *engine,
				   struct sun4i_tcon *tcon)
{}