summaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2/dss/dss.h
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2012-10-10 10:56:05 +0300
committerTomi Valkeinen <tomi.valkeinen@ti.com>2012-12-07 17:05:55 +0200
commit74b65ec24560ab0df0e7b789fa91cde4a442f169 (patch)
tree2d322869cb9ea6d9196e6743dbb7d67138b2cd30 /drivers/video/omap2/dss/dss.h
parent6abae7a18a8c9dbec96915eb924dc06288a47b02 (diff)
downloadop-kernel-dev-74b65ec24560ab0df0e7b789fa91cde4a442f169.zip
op-kernel-dev-74b65ec24560ab0df0e7b789fa91cde4a442f169.tar.gz
OMAPDSS: add manager ops
The output drivers need some operations from the overlay managers, like enable and set_timings. These will affect the dispc registers, and need to be synchronized with the composition-side changes with overlays and overlay managers. We want to handle these calls in the apply.c in the compatibility mode, but when in non-compat mode, the calls need to be handled by some other component (e.g. omapdrm). To make this possible, this patch creates a set of function pointers in a dss_mgr_ops struct, that is used to redirect the calls into the correct destination. The non-compat users can install their mgr ops with dss_install_mgr_ops() function. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video/omap2/dss/dss.h')
-rw-r--r--drivers/video/omap2/dss/dss.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/video/omap2/dss/dss.h b/drivers/video/omap2/dss/dss.h
index 9ce7986..5cc13ea 100644
--- a/drivers/video/omap2/dss/dss.h
+++ b/drivers/video/omap2/dss/dss.h
@@ -523,4 +523,17 @@ static inline void dss_collect_irq_stats(u32 irqstatus, unsigned *irq_arr)
}
#endif
+struct dss_mgr_ops {
+ void (*start_update)(struct omap_overlay_manager *mgr);
+ int (*enable)(struct omap_overlay_manager *mgr);
+ void (*disable)(struct omap_overlay_manager *mgr);
+ void (*set_timings)(struct omap_overlay_manager *mgr,
+ const struct omap_video_timings *timings);
+ void (*set_lcd_config)(struct omap_overlay_manager *mgr,
+ const struct dss_lcd_mgr_config *config);
+};
+
+int dss_install_mgr_ops(const struct dss_mgr_ops *mgr_ops);
+void dss_uninstall_mgr_ops(void);
+
#endif
OpenPOWER on IntegriCloud