Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / drivers / gpu / drm / shmobile / shmob_drm_crtc.h
1 /*
2  * shmob_drm_crtc.h  --  SH Mobile DRM CRTCs
3  *
4  * Copyright (C) 2012 Renesas Electronics Corporation
5  *
6  * Laurent Pinchart (laurent.pinchart@ideasonboard.com)
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  */
13
14 #ifndef __SHMOB_DRM_CRTC_H__
15 #define __SHMOB_DRM_CRTC_H__
16
17 #include <drm/drmP.h>
18 #include <drm/drm_crtc.h>
19
20 struct backlight_device;
21 struct shmob_drm_device;
22
23 struct shmob_drm_crtc {
24         struct drm_crtc crtc;
25
26         struct drm_pending_vblank_event *event;
27         int dpms;
28
29         const struct shmob_drm_format_info *format;
30         void *cache;
31         unsigned long dma[2];
32         unsigned int line_size;
33         bool started;
34 };
35
36 struct shmob_drm_encoder {
37         struct drm_encoder encoder;
38         int dpms;
39 };
40
41 struct shmob_drm_connector {
42         struct drm_connector connector;
43         struct drm_encoder *encoder;
44
45         struct backlight_device *backlight;
46 };
47
48 int shmob_drm_crtc_create(struct shmob_drm_device *sdev);
49 void shmob_drm_crtc_enable_vblank(struct shmob_drm_device *sdev, bool enable);
50 void shmob_drm_crtc_cancel_page_flip(struct shmob_drm_crtc *scrtc,
51                                      struct drm_file *file);
52 void shmob_drm_crtc_finish_page_flip(struct shmob_drm_crtc *scrtc);
53 void shmob_drm_crtc_suspend(struct shmob_drm_crtc *scrtc);
54 void shmob_drm_crtc_resume(struct shmob_drm_crtc *scrtc);
55
56 int shmob_drm_encoder_create(struct shmob_drm_device *sdev);
57 int shmob_drm_connector_create(struct shmob_drm_device *sdev,
58                                struct drm_encoder *encoder);
59
60 #endif /* __SHMOB_DRM_CRTC_H__ */