linux/drivers/gpu/drm/omapdrm/dss/venc.c

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (C) 2009 Nokia Corporation
 * Author: Tomi Valkeinen <[email protected]>
 *
 * VENC settings from TI's DSS driver
 */

#define DSS_SUBSYS_NAME

#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/clk.h>
#include <linux/err.h>
#include <linux/io.h>
#include <linux/completion.h>
#include <linux/delay.h>
#include <linux/string.h>
#include <linux/seq_file.h>
#include <linux/platform_device.h>
#include <linux/regulator/consumer.h>
#include <linux/pm_runtime.h>
#include <linux/of.h>
#include <linux/of_graph.h>
#include <linux/component.h>
#include <linux/sys_soc.h>

#include <drm/drm_bridge.h>

#include "omapdss.h"
#include "dss.h"

/* Venc registers */
#define VENC_REV_ID
#define VENC_STATUS
#define VENC_F_CONTROL
#define VENC_VIDOUT_CTRL
#define VENC_SYNC_CTRL
#define VENC_LLEN
#define VENC_FLENS
#define VENC_HFLTR_CTRL
#define VENC_CC_CARR_WSS_CARR
#define VENC_C_PHASE
#define VENC_GAIN_U
#define VENC_GAIN_V
#define VENC_GAIN_Y
#define VENC_BLACK_LEVEL
#define VENC_BLANK_LEVEL
#define VENC_X_COLOR
#define VENC_M_CONTROL
#define VENC_BSTAMP_WSS_DATA
#define VENC_S_CARR
#define VENC_LINE21
#define VENC_LN_SEL
#define VENC_L21__WC_CTL
#define VENC_HTRIGGER_VTRIGGER
#define VENC_SAVID__EAVID
#define VENC_FLEN__FAL
#define VENC_LAL__PHASE_RESET
#define VENC_HS_INT_START_STOP_X
#define VENC_HS_EXT_START_STOP_X
#define VENC_VS_INT_START_X
#define VENC_VS_INT_STOP_X__VS_INT_START_Y
#define VENC_VS_INT_STOP_Y__VS_EXT_START_X
#define VENC_VS_EXT_STOP_X__VS_EXT_START_Y
#define VENC_VS_EXT_STOP_Y
#define VENC_AVID_START_STOP_X
#define VENC_AVID_START_STOP_Y
#define VENC_FID_INT_START_X__FID_INT_START_Y
#define VENC_FID_INT_OFFSET_Y__FID_EXT_START_X
#define VENC_FID_EXT_START_Y__FID_EXT_OFFSET_Y
#define VENC_TVDETGP_INT_START_STOP_X
#define VENC_TVDETGP_INT_START_STOP_Y
#define VENC_GEN_CTRL
#define VENC_OUTPUT_CONTROL
#define VENC_OUTPUT_TEST
#define VENC_DAC_B__DAC_C

struct venc_config {};

/* from TRM */
static const struct venc_config venc_config_pal_trm =;

/* from TRM */
static const struct venc_config venc_config_ntsc_trm =;

enum venc_videomode {};

static const struct drm_display_mode omap_dss_pal_mode =;

static const struct drm_display_mode omap_dss_ntsc_mode =;

struct venc_device {};

#define drm_bridge_to_venc(b)

static inline void venc_write_reg(struct venc_device *venc, int idx, u32 val)
{}

static inline u32 venc_read_reg(struct venc_device *venc, int idx)
{}

static void venc_write_config(struct venc_device *venc,
			      const struct venc_config *config)
{}

static void venc_reset(struct venc_device *venc)
{}

static int venc_runtime_get(struct venc_device *venc)
{}

static void venc_runtime_put(struct venc_device *venc)
{}

static int venc_power_on(struct venc_device *venc)
{}

static void venc_power_off(struct venc_device *venc)
{}

static enum venc_videomode venc_get_videomode(const struct drm_display_mode *mode)
{}

static int venc_dump_regs(struct seq_file *s, void *p)
{}

static int venc_get_clocks(struct venc_device *venc)
{}

/* -----------------------------------------------------------------------------
 * DRM Bridge Operations
 */

static int venc_bridge_attach(struct drm_bridge *bridge,
			      enum drm_bridge_attach_flags flags)
{}

static enum drm_mode_status
venc_bridge_mode_valid(struct drm_bridge *bridge,
		       const struct drm_display_info *info,
		       const struct drm_display_mode *mode)
{}

static bool venc_bridge_mode_fixup(struct drm_bridge *bridge,
				   const struct drm_display_mode *mode,
				   struct drm_display_mode *adjusted_mode)
{}

static void venc_bridge_mode_set(struct drm_bridge *bridge,
				 const struct drm_display_mode *mode,
				 const struct drm_display_mode *adjusted_mode)
{}

static void venc_bridge_enable(struct drm_bridge *bridge)
{}

static void venc_bridge_disable(struct drm_bridge *bridge)
{}

static int venc_bridge_get_modes(struct drm_bridge *bridge,
				 struct drm_connector *connector)
{}

static const struct drm_bridge_funcs venc_bridge_funcs =;

static void venc_bridge_init(struct venc_device *venc)
{}

static void venc_bridge_cleanup(struct venc_device *venc)
{}

/* -----------------------------------------------------------------------------
 * Component Bind & Unbind
 */

static int venc_bind(struct device *dev, struct device *master, void *data)
{}

static void venc_unbind(struct device *dev, struct device *master, void *data)
{}

static const struct component_ops venc_component_ops =;

/* -----------------------------------------------------------------------------
 * Probe & Remove, Suspend & Resume
 */

static int venc_init_output(struct venc_device *venc)
{}

static void venc_uninit_output(struct venc_device *venc)
{}

static int venc_probe_of(struct venc_device *venc)
{}

static const struct soc_device_attribute venc_soc_devices[] =;

static int venc_probe(struct platform_device *pdev)
{}

static void venc_remove(struct platform_device *pdev)
{}

static __maybe_unused int venc_runtime_suspend(struct device *dev)
{}

static __maybe_unused int venc_runtime_resume(struct device *dev)
{}

static const struct dev_pm_ops venc_pm_ops =;

static const struct of_device_id venc_of_match[] =;

struct platform_driver omap_venchw_driver =;