xref: /linux/drivers/gpu/drm/xlnx/zynqmp_kms.h (revision 4ce6ecd499749177b361d164849bd34924b7b3b7)
176c8eeb7SLaurent Pinchart /* SPDX-License-Identifier: GPL-2.0 */
276c8eeb7SLaurent Pinchart /*
376c8eeb7SLaurent Pinchart  * ZynqMP DisplayPort Subsystem - KMS API
476c8eeb7SLaurent Pinchart  *
576c8eeb7SLaurent Pinchart  * Copyright (C) 2017 - 2021 Xilinx, Inc.
676c8eeb7SLaurent Pinchart  *
776c8eeb7SLaurent Pinchart  * Authors:
876c8eeb7SLaurent Pinchart  * - Hyun Woo Kwon <hyun.kwon@xilinx.com>
976c8eeb7SLaurent Pinchart  * - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
1076c8eeb7SLaurent Pinchart  */
1176c8eeb7SLaurent Pinchart 
1276c8eeb7SLaurent Pinchart #ifndef _ZYNQMP_KMS_H_
1376c8eeb7SLaurent Pinchart #define _ZYNQMP_KMS_H_
1476c8eeb7SLaurent Pinchart 
15d189835fSLaurent Pinchart #include <drm/drm_crtc.h>
16d189835fSLaurent Pinchart #include <drm/drm_device.h>
17d189835fSLaurent Pinchart #include <drm/drm_encoder.h>
18d189835fSLaurent Pinchart #include <drm/drm_plane.h>
19d189835fSLaurent Pinchart 
20d189835fSLaurent Pinchart #include "zynqmp_dpsub.h"
21d189835fSLaurent Pinchart 
2276c8eeb7SLaurent Pinchart struct zynqmp_dpsub;
2376c8eeb7SLaurent Pinchart 
24d189835fSLaurent Pinchart /**
25d189835fSLaurent Pinchart  * struct zynqmp_dpsub - ZynqMP DisplayPort Subsystem DRM/KMS data
26d189835fSLaurent Pinchart  * @dpsub: Backpointer to the DisplayPort subsystem
27d189835fSLaurent Pinchart  * @drm: The DRM/KMS device
28d189835fSLaurent Pinchart  * @planes: The DRM planes
29d189835fSLaurent Pinchart  * @crtc: The DRM CRTC
30d189835fSLaurent Pinchart  * @encoder: The dummy DRM encoder
31d189835fSLaurent Pinchart  */
32d189835fSLaurent Pinchart struct zynqmp_dpsub_drm {
33d189835fSLaurent Pinchart 	struct zynqmp_dpsub *dpsub;
34d189835fSLaurent Pinchart 
35d189835fSLaurent Pinchart 	struct drm_device dev;
36d189835fSLaurent Pinchart 	struct drm_plane planes[ZYNQMP_DPSUB_NUM_LAYERS];
37d189835fSLaurent Pinchart 	struct drm_crtc crtc;
38d189835fSLaurent Pinchart 	struct drm_encoder encoder;
39d189835fSLaurent Pinchart };
40074ef0ceSLaurent Pinchart 
41*4ce6ecd4SLaurent Pinchart void zynqmp_dpsub_drm_handle_vblank(struct zynqmp_dpsub *dpsub);
4283a956d3SLaurent Pinchart 
43074ef0ceSLaurent Pinchart int zynqmp_dpsub_drm_init(struct zynqmp_dpsub *dpsub);
44074ef0ceSLaurent Pinchart void zynqmp_dpsub_drm_cleanup(struct zynqmp_dpsub *dpsub);
4576c8eeb7SLaurent Pinchart 
4676c8eeb7SLaurent Pinchart #endif /* _ZYNQMP_KMS_H_ */
47