Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  * Copyright 2019 NXP.
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