1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * ZynqMP DisplayPort Subsystem - KMS API
4 *
5 * Copyright (C) 2017 - 2021 Xilinx, Inc.
6 *
7 * Authors:
8 * - Hyun Woo Kwon <hyun.kwon@xilinx.com>
9 * - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
10 */
11
12#ifndef _ZYNQMP_KMS_H_
13#define _ZYNQMP_KMS_H_
14
15#include <drm/drm_crtc.h>
16#include <drm/drm_device.h>
17#include <drm/drm_encoder.h>
18#include <drm/drm_plane.h>
19
20#include "zynqmp_dpsub.h"
21
22struct zynqmp_dpsub;
23
24/**
25 * struct zynqmp_dpsub - ZynqMP DisplayPort Subsystem DRM/KMS data
26 * @dpsub: Backpointer to the DisplayPort subsystem
27 * @drm: The DRM/KMS device
28 * @planes: The DRM planes
29 * @crtc: The DRM CRTC
30 * @encoder: The dummy DRM encoder
31 */
32struct zynqmp_dpsub_drm {
33	struct zynqmp_dpsub *dpsub;
34
35	struct drm_device dev;
36	struct drm_plane planes[ZYNQMP_DPSUB_NUM_LAYERS];
37	struct drm_crtc crtc;
38	struct drm_encoder encoder;
39};
40
41void zynqmp_dpsub_drm_handle_vblank(struct zynqmp_dpsub *dpsub);
42
43int zynqmp_dpsub_drm_init(struct zynqmp_dpsub *dpsub);
44void zynqmp_dpsub_drm_cleanup(struct zynqmp_dpsub *dpsub);
45
46#endif /* _ZYNQMP_KMS_H_ */
47