dcss-kms.h 907 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * Copyright 2019 NXP.
  4. */
  5. #ifndef _DCSS_KMS_H_
  6. #define _DCSS_KMS_H_
  7. #include <drm/drm_encoder.h>
  8. struct dcss_plane {
  9. struct drm_plane base;
  10. int ch_num;
  11. };
  12. struct dcss_crtc {
  13. struct drm_crtc base;
  14. struct drm_crtc_state *state;
  15. struct dcss_plane *plane[3];
  16. int irq;
  17. bool disable_ctxld_kick_irq;
  18. };
  19. struct dcss_kms_dev {
  20. struct drm_device base;
  21. struct dcss_crtc crtc;
  22. struct drm_encoder encoder;
  23. struct drm_connector *connector;
  24. };
  25. struct dcss_kms_dev *dcss_kms_attach(struct dcss_dev *dcss);
  26. void dcss_kms_detach(struct dcss_kms_dev *kms);
  27. int dcss_crtc_init(struct dcss_crtc *crtc, struct drm_device *drm);
  28. void dcss_crtc_deinit(struct dcss_crtc *crtc, struct drm_device *drm);
  29. struct dcss_plane *dcss_plane_init(struct drm_device *drm,
  30. unsigned int possible_crtcs,
  31. enum drm_plane_type type,
  32. unsigned int zpos);
  33. #endif