shmob_drm_crtc.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /* SPDX-License-Identifier: GPL-2.0+ */
  2. /*
  3. * shmob_drm_crtc.h -- SH Mobile DRM CRTCs
  4. *
  5. * Copyright (C) 2012 Renesas Electronics Corporation
  6. *
  7. * Laurent Pinchart (laurent.pinchart@ideasonboard.com)
  8. */
  9. #ifndef __SHMOB_DRM_CRTC_H__
  10. #define __SHMOB_DRM_CRTC_H__
  11. #include <drm/drm_crtc.h>
  12. #include <drm/drm_connector.h>
  13. #include <drm/drm_encoder.h>
  14. struct backlight_device;
  15. struct drm_pending_vblank_event;
  16. struct shmob_drm_device;
  17. struct shmob_drm_format_info;
  18. struct shmob_drm_crtc {
  19. struct drm_crtc crtc;
  20. struct drm_pending_vblank_event *event;
  21. int dpms;
  22. const struct shmob_drm_format_info *format;
  23. unsigned long dma[2];
  24. unsigned int line_size;
  25. bool started;
  26. };
  27. struct shmob_drm_encoder {
  28. struct drm_encoder encoder;
  29. int dpms;
  30. };
  31. struct shmob_drm_connector {
  32. struct drm_connector connector;
  33. struct drm_encoder *encoder;
  34. struct backlight_device *backlight;
  35. };
  36. int shmob_drm_crtc_create(struct shmob_drm_device *sdev);
  37. void shmob_drm_crtc_finish_page_flip(struct shmob_drm_crtc *scrtc);
  38. void shmob_drm_crtc_suspend(struct shmob_drm_crtc *scrtc);
  39. void shmob_drm_crtc_resume(struct shmob_drm_crtc *scrtc);
  40. int shmob_drm_encoder_create(struct shmob_drm_device *sdev);
  41. int shmob_drm_connector_create(struct shmob_drm_device *sdev,
  42. struct drm_encoder *encoder);
  43. #endif /* __SHMOB_DRM_CRTC_H__ */