linux/drivers/gpu/drm/tidss/tidss_crtc.c

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2018 Texas Instruments Incorporated - https://www.ti.com/
 * Author: Tomi Valkeinen <[email protected]>
 */

#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"

/* Page flip and frame done IRQs */

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)
{}

/* drm_crtc_helper_funcs */

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

/*
 * This needs all affected planes to be present in the atomic
 * state. The untouched planes are added to the state in
 * tidss_atomic_check().
 */
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 =;

/* drm_crtc_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)
{}