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