/* SPDX-License-Identifier: GPL-2.0 */ /* * ZynqMP DisplayPort Subsystem - KMS API * * Copyright (C) 2017 - 2021 Xilinx, Inc. * * Authors: * - Hyun Woo Kwon <hyun.kwon@xilinx.com> * - Laurent Pinchart <laurent.pinchart@ideasonboard.com> */ #ifndef _ZYNQMP_KMS_H_ #define _ZYNQMP_KMS_H_ #include <drm/drm_crtc.h> #include <drm/drm_device.h> #include <drm/drm_encoder.h> #include <drm/drm_plane.h> #include "zynqmp_dpsub.h" struct zynqmp_dpsub; /** * struct zynqmp_dpsub - ZynqMP DisplayPort Subsystem DRM/KMS data * @dpsub: Backpointer to the DisplayPort subsystem * @drm: The DRM/KMS device * @planes: The DRM planes * @crtc: The DRM CRTC * @encoder: The dummy DRM encoder */ struct zynqmp_dpsub_drm { struct zynqmp_dpsub *dpsub; struct drm_device dev; struct drm_plane planes[ZYNQMP_DPSUB_NUM_LAYERS]; struct drm_crtc crtc; struct drm_encoder encoder; }; void zynqmp_dpsub_drm_handle_vblank(struct zynqmp_dpsub *dpsub); int zynqmp_dpsub_drm_init(struct zynqmp_dpsub *dpsub); void zynqmp_dpsub_drm_cleanup(struct zynqmp_dpsub *dpsub); #endif /* _ZYNQMP_KMS_H_ */