shmob_drm_crtc.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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/drmP.h>
  12. #include <drm/drm_crtc.h>
  13. #include <drm/drm_encoder.h>
  14. struct backlight_device;
  15. struct shmob_drm_device;
  16. struct shmob_drm_crtc {
  17. struct drm_crtc crtc;
  18. struct drm_pending_vblank_event *event;
  19. int dpms;
  20. const struct shmob_drm_format_info *format;
  21. unsigned long dma[2];
  22. unsigned int line_size;
  23. bool started;
  24. };
  25. struct shmob_drm_encoder {
  26. struct drm_encoder encoder;
  27. int dpms;
  28. };
  29. struct shmob_drm_connector {
  30. struct drm_connector connector;
  31. struct drm_encoder *encoder;
  32. struct backlight_device *backlight;
  33. };
  34. int shmob_drm_crtc_create(struct shmob_drm_device *sdev);
  35. void shmob_drm_crtc_finish_page_flip(struct shmob_drm_crtc *scrtc);
  36. void shmob_drm_crtc_suspend(struct shmob_drm_crtc *scrtc);
  37. void shmob_drm_crtc_resume(struct shmob_drm_crtc *scrtc);
  38. int shmob_drm_encoder_create(struct shmob_drm_device *sdev);
  39. int shmob_drm_connector_create(struct shmob_drm_device *sdev,
  40. struct drm_encoder *encoder);
  41. #endif /* __SHMOB_DRM_CRTC_H__ */