1b5561412SLaurent Pinchart /*
2b5561412SLaurent Pinchart  * omap_crtc.h -- OMAP DRM CRTC
3b5561412SLaurent Pinchart  *
4b5561412SLaurent Pinchart  * Copyright (C) 2011 Texas Instruments
5b5561412SLaurent Pinchart  * Author: Rob Clark <rob@ti.com>
6b5561412SLaurent Pinchart  *
7b5561412SLaurent Pinchart  * This program is free software; you can redistribute it and/or modify it
8b5561412SLaurent Pinchart  * under the terms of the GNU General Public License version 2 as published by
9b5561412SLaurent Pinchart  * the Free Software Foundation.
10b5561412SLaurent Pinchart  *
11b5561412SLaurent Pinchart  * This program is distributed in the hope that it will be useful, but WITHOUT
12b5561412SLaurent Pinchart  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13b5561412SLaurent Pinchart  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
14b5561412SLaurent Pinchart  * more details.
15b5561412SLaurent Pinchart  *
16b5561412SLaurent Pinchart  * You should have received a copy of the GNU General Public License along with
17b5561412SLaurent Pinchart  * this program.  If not, see <http://www.gnu.org/licenses/>.
18b5561412SLaurent Pinchart  */
19b5561412SLaurent Pinchart 
20b5561412SLaurent Pinchart #ifndef __OMAPDRM_CRTC_H__
21b5561412SLaurent Pinchart #define __OMAPDRM_CRTC_H__
22b5561412SLaurent Pinchart 
23b5561412SLaurent Pinchart #include <linux/types.h>
24b5561412SLaurent Pinchart 
25b5561412SLaurent Pinchart enum omap_channel;
26b5561412SLaurent Pinchart 
27b5561412SLaurent Pinchart struct drm_crtc;
28b5561412SLaurent Pinchart struct drm_device;
29b5561412SLaurent Pinchart struct drm_plane;
3000b30e79SLaurent Pinchart struct omap_drm_pipeline;
31b5561412SLaurent Pinchart struct omap_dss_device;
32b5561412SLaurent Pinchart struct videomode;
33b5561412SLaurent Pinchart 
34b5561412SLaurent Pinchart struct videomode *omap_crtc_timings(struct drm_crtc *crtc);
35b5561412SLaurent Pinchart enum omap_channel omap_crtc_channel(struct drm_crtc *crtc);
3664cb8179SLaurent Pinchart void omap_crtc_pre_init(struct omap_drm_private *priv);
37845417b3SLaurent Pinchart void omap_crtc_pre_uninit(struct omap_drm_private *priv);
38b5561412SLaurent Pinchart struct drm_crtc *omap_crtc_init(struct drm_device *dev,
3900b30e79SLaurent Pinchart 				struct omap_drm_pipeline *pipe,
4000b30e79SLaurent Pinchart 				struct drm_plane *plane);
41b5561412SLaurent Pinchart int omap_crtc_wait_pending(struct drm_crtc *crtc);
42dfe9cfccSLaurent Pinchart void omap_crtc_error_irq(struct drm_crtc *crtc, u32 irqstatus);
43b5561412SLaurent Pinchart void omap_crtc_vblank_irq(struct drm_crtc *crtc);
4447103a80SSebastian Reichel void omap_crtc_framedone_irq(struct drm_crtc *crtc, uint32_t irqstatus);
451bb418bfSSebastian Reichel void omap_crtc_flush(struct drm_crtc *crtc);
46b5561412SLaurent Pinchart 
47b5561412SLaurent Pinchart #endif /* __OMAPDRM_CRTC_H__ */
48