linux/drivers/gpu/drm/exynos/exynos_drm_vidi.c

// SPDX-License-Identifier: GPL-2.0-or-later
/* exynos_drm_vidi.c
 *
 * Copyright (C) 2012 Samsung Electronics Co.Ltd
 * Authors:
 *	Inki Dae <[email protected]>
 */

#include <linux/component.h>
#include <linux/kernel.h>
#include <linux/platform_device.h>
#include <linux/timer.h>

#include <drm/drm_atomic_helper.h>
#include <drm/drm_edid.h>
#include <drm/drm_framebuffer.h>
#include <drm/drm_probe_helper.h>
#include <drm/drm_simple_kms_helper.h>
#include <drm/drm_vblank.h>
#include <drm/exynos_drm.h>

#include "exynos_drm_crtc.h"
#include "exynos_drm_drv.h"
#include "exynos_drm_fb.h"
#include "exynos_drm_plane.h"
#include "exynos_drm_vidi.h"

/* VIDI uses fixed refresh rate of 50Hz */
#define VIDI_REFRESH_TIME

/* vidi has totally three virtual windows. */
#define WINDOWS_NR

#define ctx_from_connector(c)

struct vidi_context {};

static inline struct vidi_context *encoder_to_vidi(struct drm_encoder *e)
{}

static const char fake_edid_info[] =;

static const uint32_t formats[] =;

static const enum drm_plane_type vidi_win_types[WINDOWS_NR] =;

static int vidi_enable_vblank(struct exynos_drm_crtc *crtc)
{}

static void vidi_disable_vblank(struct exynos_drm_crtc *crtc)
{}

static void vidi_update_plane(struct exynos_drm_crtc *crtc,
			      struct exynos_drm_plane *plane)
{}

static void vidi_atomic_enable(struct exynos_drm_crtc *crtc)
{}

static void vidi_atomic_disable(struct exynos_drm_crtc *crtc)
{}

static const struct exynos_drm_crtc_ops vidi_crtc_ops =;

static void vidi_fake_vblank_timer(struct timer_list *t)
{}

static ssize_t vidi_show_connection(struct device *dev,
				struct device_attribute *attr, char *buf)
{}

static ssize_t vidi_store_connection(struct device *dev,
				struct device_attribute *attr,
				const char *buf, size_t len)
{}

static DEVICE_ATTR(connection, 0644, vidi_show_connection,
			vidi_store_connection);

static struct attribute *vidi_attrs[] =;
ATTRIBUTE_GROUPS();

int vidi_connection_ioctl(struct drm_device *drm_dev, void *data,
				struct drm_file *file_priv)
{}

static enum drm_connector_status vidi_detect(struct drm_connector *connector,
			bool force)
{}

static void vidi_connector_destroy(struct drm_connector *connector)
{}

static const struct drm_connector_funcs vidi_connector_funcs =;

static int vidi_get_modes(struct drm_connector *connector)
{}

static const struct drm_connector_helper_funcs vidi_connector_helper_funcs =;

static int vidi_create_connector(struct drm_encoder *encoder)
{}

static void exynos_vidi_mode_set(struct drm_encoder *encoder,
			       struct drm_display_mode *mode,
			       struct drm_display_mode *adjusted_mode)
{}

static void exynos_vidi_enable(struct drm_encoder *encoder)
{}

static void exynos_vidi_disable(struct drm_encoder *encoder)
{}

static const struct drm_encoder_helper_funcs exynos_vidi_encoder_helper_funcs =;

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


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

static const struct component_ops vidi_component_ops =;

static int vidi_probe(struct platform_device *pdev)
{}

static void vidi_remove(struct platform_device *pdev)
{}

struct platform_driver vidi_driver =;