Merge branch 'address-masking'
[linux-2.6-microblaze.git] / drivers / gpu / drm / imx / dcss / dcss-kms.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright 2019 NXP.
4  */
5
6 #ifndef _DCSS_KMS_H_
7 #define _DCSS_KMS_H_
8
9 #include <drm/drm_encoder.h>
10
11 struct dcss_plane {
12         struct drm_plane base;
13
14         int ch_num;
15 };
16
17 struct dcss_crtc {
18         struct drm_crtc         base;
19         struct drm_crtc_state   *state;
20
21         struct dcss_plane       *plane[3];
22
23         int                     irq;
24
25         bool disable_ctxld_kick_irq;
26 };
27
28 struct dcss_kms_dev {
29         struct drm_device base;
30         struct dcss_crtc crtc;
31         struct drm_encoder encoder;
32         struct drm_connector *connector;
33 };
34
35 struct dcss_kms_dev *dcss_kms_attach(struct dcss_dev *dcss);
36 void dcss_kms_detach(struct dcss_kms_dev *kms);
37 void dcss_kms_shutdown(struct dcss_kms_dev *kms);
38 int dcss_crtc_init(struct dcss_crtc *crtc, struct drm_device *drm);
39 void dcss_crtc_deinit(struct dcss_crtc *crtc, struct drm_device *drm);
40 struct dcss_plane *dcss_plane_init(struct drm_device *drm,
41                                    unsigned int possible_crtcs,
42                                    enum drm_plane_type type,
43                                    unsigned int zpos);
44
45 #endif