0001
0002
0003
0004
0005
0006 #ifndef _DCSS_KMS_H_
0007 #define _DCSS_KMS_H_
0008
0009 #include <drm/drm_encoder.h>
0010
0011 struct dcss_plane {
0012 struct drm_plane base;
0013
0014 int ch_num;
0015 };
0016
0017 struct dcss_crtc {
0018 struct drm_crtc base;
0019 struct drm_crtc_state *state;
0020
0021 struct dcss_plane *plane[3];
0022
0023 int irq;
0024
0025 bool disable_ctxld_kick_irq;
0026 };
0027
0028 struct dcss_kms_dev {
0029 struct drm_device base;
0030 struct dcss_crtc crtc;
0031 struct drm_encoder encoder;
0032 struct drm_connector *connector;
0033 };
0034
0035 struct dcss_kms_dev *dcss_kms_attach(struct dcss_dev *dcss);
0036 void dcss_kms_detach(struct dcss_kms_dev *kms);
0037 int dcss_crtc_init(struct dcss_crtc *crtc, struct drm_device *drm);
0038 void dcss_crtc_deinit(struct dcss_crtc *crtc, struct drm_device *drm);
0039 struct dcss_plane *dcss_plane_init(struct drm_device *drm,
0040 unsigned int possible_crtcs,
0041 enum drm_plane_type type,
0042 unsigned int zpos);
0043
0044 #endif