linux/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2014 Traphandler
 * Copyright (C) 2014 Free Electrons
 *
 * Author: Jean-Jacques Hiblot <[email protected]>
 * Author: Boris BREZILLON <[email protected]>
 */

#include <linux/clk.h>
#include <linux/media-bus-format.h>
#include <linux/mfd/atmel-hlcdc.h>
#include <linux/pinctrl/consumer.h>
#include <linux/pm.h>
#include <linux/pm_runtime.h>

#include <video/videomode.h>

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

#include "atmel_hlcdc_dc.h"

/**
 * struct atmel_hlcdc_crtc_state - Atmel HLCDC CRTC state structure
 *
 * @base: base CRTC state
 * @output_mode: RGBXXX output mode
 * @dpi: output DPI mode
 */
struct atmel_hlcdc_crtc_state {};

static inline struct atmel_hlcdc_crtc_state *
drm_crtc_state_to_atmel_hlcdc_crtc_state(struct drm_crtc_state *state)
{}

/**
 * struct atmel_hlcdc_crtc - Atmel HLCDC CRTC structure
 *
 * @base: base DRM CRTC structure
 * @dc: pointer to the atmel_hlcdc structure provided by the MFD device
 * @event: pointer to the current page flip event
 * @id: CRTC id (returned by drm_crtc_index)
 */
struct atmel_hlcdc_crtc {};

static inline struct atmel_hlcdc_crtc *
drm_crtc_to_atmel_hlcdc_crtc(struct drm_crtc *crtc)
{}

static void atmel_hlcdc_crtc_mode_set_nofb(struct drm_crtc *c)
{}

static enum drm_mode_status
atmel_hlcdc_crtc_mode_valid(struct drm_crtc *c,
			    const struct drm_display_mode *mode)
{}

static void atmel_hlcdc_crtc_atomic_disable(struct drm_crtc *c,
					    struct drm_atomic_state *state)
{}

static void atmel_hlcdc_crtc_atomic_enable(struct drm_crtc *c,
					   struct drm_atomic_state *state)
{}

#define ATMEL_HLCDC_RGB444_OUTPUT
#define ATMEL_HLCDC_RGB565_OUTPUT
#define ATMEL_HLCDC_RGB666_OUTPUT
#define ATMEL_HLCDC_RGB888_OUTPUT
#define ATMEL_HLCDC_DPI_RGB565C1_OUTPUT
#define ATMEL_HLCDC_DPI_RGB565C2_OUTPUT
#define ATMEL_HLCDC_DPI_RGB565C3_OUTPUT
#define ATMEL_HLCDC_DPI_RGB666C1_OUTPUT
#define ATMEL_HLCDC_DPI_RGB666C2_OUTPUT
#define ATMEL_HLCDC_DPI_RGB888_OUTPUT
#define ATMEL_HLCDC_OUTPUT_MODE_MASK
#define ATMEL_XLCDC_OUTPUT_MODE_MASK

static int atmel_xlcdc_connector_output_dsi(struct drm_encoder *encoder,
					    struct drm_display_info *info)
{}

static int atmel_hlcdc_connector_output_mode(struct drm_connector_state *state)
{}

static int atmel_hlcdc_crtc_select_output_mode(struct drm_crtc_state *state)
{}

static int atmel_hlcdc_crtc_atomic_check(struct drm_crtc *c,
					 struct drm_atomic_state *state)
{}

static void atmel_hlcdc_crtc_atomic_begin(struct drm_crtc *c,
					  struct drm_atomic_state *state)
{}

static void atmel_hlcdc_crtc_atomic_flush(struct drm_crtc *c,
					  struct drm_atomic_state *state)
{}

static const struct drm_crtc_helper_funcs lcdc_crtc_helper_funcs =;

static void atmel_hlcdc_crtc_destroy(struct drm_crtc *c)
{}

static void atmel_hlcdc_crtc_finish_page_flip(struct atmel_hlcdc_crtc *crtc)
{}

void atmel_hlcdc_crtc_irq(struct drm_crtc *c)
{}

static void atmel_hlcdc_crtc_reset(struct drm_crtc *crtc)
{}

static struct drm_crtc_state *
atmel_hlcdc_crtc_duplicate_state(struct drm_crtc *crtc)
{}

static void atmel_hlcdc_crtc_destroy_state(struct drm_crtc *crtc,
					   struct drm_crtc_state *s)
{}

static int atmel_hlcdc_crtc_enable_vblank(struct drm_crtc *c)
{}

static void atmel_hlcdc_crtc_disable_vblank(struct drm_crtc *c)
{}

static const struct drm_crtc_funcs atmel_hlcdc_crtc_funcs =;

int atmel_hlcdc_crtc_create(struct drm_device *dev)
{}