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