linux/drivers/gpu/drm/omapdrm/omap_crtc.c

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

#include <linux/math64.h>

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

#include "omap_drv.h"

#define to_omap_crtc_state(x)

struct omap_crtc_state {};

#define to_omap_crtc(x)

struct omap_crtc {};

/* -----------------------------------------------------------------------------
 * Helper Functions
 */

struct videomode *omap_crtc_timings(struct drm_crtc *crtc)
{}

enum omap_channel omap_crtc_channel(struct drm_crtc *crtc)
{}

static bool omap_crtc_is_pending(struct drm_crtc *crtc)
{}

int omap_crtc_wait_pending(struct drm_crtc *crtc)
{}

/* -----------------------------------------------------------------------------
 * DSS Manager Functions
 */

/*
 * Manager-ops, callbacks from output when they need to configure
 * the upstream part of the video pipe.
 */

void omap_crtc_dss_start_update(struct omap_drm_private *priv,
				       enum omap_channel channel)
{}

/* Called only from the encoder enable/disable and suspend/resume handlers. */
void omap_crtc_set_enabled(struct drm_crtc *crtc, bool enable)
{}


int omap_crtc_dss_enable(struct omap_drm_private *priv, enum omap_channel channel)
{}

void omap_crtc_dss_disable(struct omap_drm_private *priv, enum omap_channel channel)
{}

void omap_crtc_dss_set_timings(struct omap_drm_private *priv,
		enum omap_channel channel,
		const struct videomode *vm)
{}

void omap_crtc_dss_set_lcd_config(struct omap_drm_private *priv,
		enum omap_channel channel,
		const struct dss_lcd_mgr_config *config)
{}

int omap_crtc_dss_register_framedone(
		struct omap_drm_private *priv, enum omap_channel channel,
		void (*handler)(void *), void *data)
{}

void omap_crtc_dss_unregister_framedone(
		struct omap_drm_private *priv, enum omap_channel channel,
		void (*handler)(void *), void *data)
{}

/* -----------------------------------------------------------------------------
 * Setup, Flush and Page Flip
 */

void omap_crtc_error_irq(struct drm_crtc *crtc, u32 irqstatus)
{}

void omap_crtc_vblank_irq(struct drm_crtc *crtc)
{}

void omap_crtc_framedone_irq(struct drm_crtc *crtc, uint32_t irqstatus)
{}

void omap_crtc_flush(struct drm_crtc *crtc)
{}

static void omap_crtc_manual_display_update(struct work_struct *data)
{}

static s16 omap_crtc_s31_32_to_s2_8(s64 coef)
{}

static void omap_crtc_cpr_coefs_from_ctm(const struct drm_color_ctm *ctm,
					 struct omap_dss_cpr_coefs *cpr)
{}

static void omap_crtc_write_crtc_properties(struct drm_crtc *crtc)
{}

/* -----------------------------------------------------------------------------
 * CRTC Functions
 */

static void omap_crtc_destroy(struct drm_crtc *crtc)
{}

static void omap_crtc_arm_event(struct drm_crtc *crtc)
{}

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

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

static enum drm_mode_status omap_crtc_mode_valid(struct drm_crtc *crtc,
					const struct drm_display_mode *mode)
{}

static void omap_crtc_mode_set_nofb(struct drm_crtc *crtc)
{}

static bool omap_crtc_is_manually_updated(struct drm_crtc *crtc)
{}

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

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

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

static int omap_crtc_atomic_set_property(struct drm_crtc *crtc,
					 struct drm_crtc_state *state,
					 struct drm_property *property,
					 u64 val)
{}

static int omap_crtc_atomic_get_property(struct drm_crtc *crtc,
					 const struct drm_crtc_state *state,
					 struct drm_property *property,
					 u64 *val)
{}

static void omap_crtc_reset(struct drm_crtc *crtc)
{}

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

static const struct drm_crtc_funcs omap_crtc_funcs =;

static const struct drm_crtc_helper_funcs omap_crtc_helper_funcs =;

/* -----------------------------------------------------------------------------
 * Init and Cleanup
 */

static const char *channel_names[] =;

/* initialize crtc */
struct drm_crtc *omap_crtc_init(struct drm_device *dev,
				struct omap_drm_pipeline *pipe,
				struct drm_plane *plane)
{}