#ifndef __OMAP_DRM_DSS_H
#define __OMAP_DRM_DSS_H
#include <drm/drm_color_mgmt.h>
#include <drm/drm_crtc.h>
#include <drm/drm_mode.h>
#include <linux/device.h>
#include <linux/interrupt.h>
#include <linux/list.h>
#include <linux/platform_data/omapdss.h>
#include <video/videomode.h>
#define DISPC_IRQ_FRAMEDONE …
#define DISPC_IRQ_VSYNC …
#define DISPC_IRQ_EVSYNC_EVEN …
#define DISPC_IRQ_EVSYNC_ODD …
#define DISPC_IRQ_ACBIAS_COUNT_STAT …
#define DISPC_IRQ_PROG_LINE_NUM …
#define DISPC_IRQ_GFX_FIFO_UNDERFLOW …
#define DISPC_IRQ_GFX_END_WIN …
#define DISPC_IRQ_PAL_GAMMA_MASK …
#define DISPC_IRQ_OCP_ERR …
#define DISPC_IRQ_VID1_FIFO_UNDERFLOW …
#define DISPC_IRQ_VID1_END_WIN …
#define DISPC_IRQ_VID2_FIFO_UNDERFLOW …
#define DISPC_IRQ_VID2_END_WIN …
#define DISPC_IRQ_SYNC_LOST …
#define DISPC_IRQ_SYNC_LOST_DIGIT …
#define DISPC_IRQ_WAKEUP …
#define DISPC_IRQ_SYNC_LOST2 …
#define DISPC_IRQ_VSYNC2 …
#define DISPC_IRQ_VID3_END_WIN …
#define DISPC_IRQ_VID3_FIFO_UNDERFLOW …
#define DISPC_IRQ_ACBIAS_COUNT_STAT2 …
#define DISPC_IRQ_FRAMEDONE2 …
#define DISPC_IRQ_FRAMEDONEWB …
#define DISPC_IRQ_FRAMEDONETV …
#define DISPC_IRQ_WBBUFFEROVERFLOW …
#define DISPC_IRQ_WBUNCOMPLETEERROR …
#define DISPC_IRQ_SYNC_LOST3 …
#define DISPC_IRQ_VSYNC3 …
#define DISPC_IRQ_ACBIAS_COUNT_STAT3 …
#define DISPC_IRQ_FRAMEDONE3 …
struct dispc_device;
struct drm_connector;
struct dss_device;
struct dss_lcd_mgr_config;
struct hdmi_avi_infoframe;
struct omap_drm_private;
struct omap_dss_device;
struct snd_aes_iec958;
struct snd_cea_861_aud_if;
enum omap_display_type { … };
enum omap_plane_id { … };
enum omap_channel { … };
enum omap_color_mode { … };
enum omap_dss_load_mode { … };
enum omap_dss_trans_key_type { … };
enum omap_dss_signal_level { … };
enum omap_dss_signal_edge { … };
enum omap_dss_venc_type { … };
enum omap_dss_rotation_type { … };
enum omap_overlay_caps { … };
enum omap_dss_output_id { … };
struct omap_dss_cpr_coefs { … };
struct omap_overlay_info { … };
struct omap_overlay_manager_info { … };
struct omap_dss_writeback_info { … };
struct omapdss_dsi_ops { … };
struct omap_dss_device { … };
struct dss_pdata { … };
void omapdss_device_register(struct omap_dss_device *dssdev);
void omapdss_device_unregister(struct omap_dss_device *dssdev);
struct omap_dss_device *omapdss_device_get(struct omap_dss_device *dssdev);
void omapdss_device_put(struct omap_dss_device *dssdev);
struct omap_dss_device *omapdss_find_device_by_node(struct device_node *node);
int omapdss_device_connect(struct dss_device *dss,
struct omap_dss_device *src,
struct omap_dss_device *dst);
void omapdss_device_disconnect(struct omap_dss_device *src,
struct omap_dss_device *dst);
int omap_dss_get_num_overlay_managers(void);
int omap_dss_get_num_overlays(void);
#define for_each_dss_output(d) …
struct omap_dss_device *omapdss_device_next_output(struct omap_dss_device *from);
int omapdss_device_init_output(struct omap_dss_device *out,
struct drm_bridge *local_bridge);
void omapdss_device_cleanup_output(struct omap_dss_device *out);
omap_dispc_isr_t;
int omap_dispc_register_isr(omap_dispc_isr_t isr, void *arg, u32 mask);
int omap_dispc_unregister_isr(omap_dispc_isr_t isr, void *arg, u32 mask);
int omapdss_compat_init(void);
void omapdss_compat_uninit(void);
enum dss_writeback_channel { … };
void omap_crtc_dss_start_update(struct omap_drm_private *priv,
enum omap_channel channel);
void omap_crtc_set_enabled(struct drm_crtc *crtc, bool enable);
int omap_crtc_dss_enable(struct omap_drm_private *priv, enum omap_channel channel);
void omap_crtc_dss_disable(struct omap_drm_private *priv, enum omap_channel channel);
void omap_crtc_dss_set_timings(struct omap_drm_private *priv,
enum omap_channel channel,
const struct videomode *vm);
void omap_crtc_dss_set_lcd_config(struct omap_drm_private *priv,
enum omap_channel channel,
const struct dss_lcd_mgr_config *config);
int omap_crtc_dss_register_framedone(
struct omap_drm_private *priv, enum omap_channel channel,
void (*handler)(void *), void *data);
void omap_crtc_dss_unregister_framedone(
struct omap_drm_private *priv, enum omap_channel channel,
void (*handler)(void *), void *data);
void dss_mgr_set_timings(struct omap_dss_device *dssdev,
const struct videomode *vm);
void dss_mgr_set_lcd_config(struct omap_dss_device *dssdev,
const struct dss_lcd_mgr_config *config);
int dss_mgr_enable(struct omap_dss_device *dssdev);
void dss_mgr_disable(struct omap_dss_device *dssdev);
void dss_mgr_start_update(struct omap_dss_device *dssdev);
int dss_mgr_register_framedone_handler(struct omap_dss_device *dssdev,
void (*handler)(void *), void *data);
void dss_mgr_unregister_framedone_handler(struct omap_dss_device *dssdev,
void (*handler)(void *), void *data);
struct dispc_device *dispc_get_dispc(struct dss_device *dss);
bool omapdss_stack_is_ready(void);
void omapdss_gather_components(struct device *dev);
int omap_dss_init(void);
void omap_dss_exit(void);
#endif