aboutsummaryrefslogtreecommitdiffstats
path: root/include/video
diff options
context:
space:
mode:
authorFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>2012-01-08 10:30:34 -0500
committerFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>2012-01-08 10:30:34 -0500
commit193984f43decedd2604547022e3a26249dc18b3e (patch)
tree5a2637a0fd775e4430fc537f8107f499eea470ea /include/video
parentc5627f65d6b860023f8ee985df61c20617dd21b5 (diff)
parent9a9016832d2601a290db4dce6dd55552bdae5b1a (diff)
Merge branch 'for-florian' of git://gitorious.org/linux-omap-dss2/linux into fbdev-next
Diffstat (limited to 'include/video')
-rw-r--r--include/video/omapdss.h58
1 files changed, 34 insertions, 24 deletions
diff --git a/include/video/omapdss.h b/include/video/omapdss.h
index 378c7ed6760b..062b3b24ff10 100644
--- a/include/video/omapdss.h
+++ b/include/video/omapdss.h
@@ -200,6 +200,10 @@ enum omap_dss_clk_source {
200 OMAP_DSS_CLK_SRC_DSI2_PLL_HSDIV_DSI, /* OMAP4: PLL2_CLK2 */ 200 OMAP_DSS_CLK_SRC_DSI2_PLL_HSDIV_DSI, /* OMAP4: PLL2_CLK2 */
201}; 201};
202 202
203enum omap_hdmi_flags {
204 OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP = 1 << 0,
205};
206
203/* RFBI */ 207/* RFBI */
204 208
205struct rfbi_timings { 209struct rfbi_timings {
@@ -294,8 +298,8 @@ int dsi_vc_set_max_rx_packet_size(struct omap_dss_device *dssdev, int channel,
294 u16 len); 298 u16 len);
295int dsi_vc_send_null(struct omap_dss_device *dssdev, int channel); 299int dsi_vc_send_null(struct omap_dss_device *dssdev, int channel);
296int dsi_vc_send_bta_sync(struct omap_dss_device *dssdev, int channel); 300int dsi_vc_send_bta_sync(struct omap_dss_device *dssdev, int channel);
297int dsi_video_mode_enable(struct omap_dss_device *dssdev, int channel); 301int dsi_enable_video_output(struct omap_dss_device *dssdev, int channel);
298void dsi_video_mode_disable(struct omap_dss_device *dssdev, int channel); 302void dsi_disable_video_output(struct omap_dss_device *dssdev, int channel);
299 303
300/* Board specific data */ 304/* Board specific data */
301struct omap_dss_board_info { 305struct omap_dss_board_info {
@@ -309,6 +313,8 @@ struct omap_dss_board_info {
309 313
310/* Init with the board info */ 314/* Init with the board info */
311extern int omap_display_init(struct omap_dss_board_info *board_data); 315extern int omap_display_init(struct omap_dss_board_info *board_data);
316/* HDMI mux init*/
317extern int omap_hdmi_init(enum omap_hdmi_flags flags);
312 318
313struct omap_display_platform_data { 319struct omap_display_platform_data {
314 struct omap_dss_board_info *board_data; 320 struct omap_dss_board_info *board_data;
@@ -352,8 +358,6 @@ struct omap_dss_cpr_coefs {
352}; 358};
353 359
354struct omap_overlay_info { 360struct omap_overlay_info {
355 bool enabled;
356
357 u32 paddr; 361 u32 paddr;
358 u32 p_uv_addr; /* for NV12 format */ 362 u32 p_uv_addr; /* for NV12 format */
359 u16 screen_width; 363 u16 screen_width;
@@ -385,11 +389,21 @@ struct omap_overlay {
385 389
386 /* dynamic fields */ 390 /* dynamic fields */
387 struct omap_overlay_manager *manager; 391 struct omap_overlay_manager *manager;
388 struct omap_overlay_info info;
389 392
390 bool manager_changed; 393 /*
391 /* if true, info has been changed, but not applied() yet */ 394 * The following functions do not block:
392 bool info_dirty; 395 *
396 * is_enabled
397 * set_overlay_info
398 * get_overlay_info
399 *
400 * The rest of the functions may block and cannot be called from
401 * interrupt context
402 */
403
404 int (*enable)(struct omap_overlay *ovl);
405 int (*disable)(struct omap_overlay *ovl);
406 bool (*is_enabled)(struct omap_overlay *ovl);
393 407
394 int (*set_manager)(struct omap_overlay *ovl, 408 int (*set_manager)(struct omap_overlay *ovl,
395 struct omap_overlay_manager *mgr); 409 struct omap_overlay_manager *mgr);
@@ -418,23 +432,27 @@ struct omap_overlay_manager_info {
418 432
419struct omap_overlay_manager { 433struct omap_overlay_manager {
420 struct kobject kobj; 434 struct kobject kobj;
421 struct list_head list;
422 435
423 /* static fields */ 436 /* static fields */
424 const char *name; 437 const char *name;
425 enum omap_channel id; 438 enum omap_channel id;
426 enum omap_overlay_manager_caps caps; 439 enum omap_overlay_manager_caps caps;
427 int num_overlays; 440 struct list_head overlays;
428 struct omap_overlay **overlays;
429 enum omap_display_type supported_displays; 441 enum omap_display_type supported_displays;
430 442
431 /* dynamic fields */ 443 /* dynamic fields */
432 struct omap_dss_device *device; 444 struct omap_dss_device *device;
433 struct omap_overlay_manager_info info;
434 445
435 bool device_changed; 446 /*
436 /* if true, info has been changed but not applied() yet */ 447 * The following functions do not block:
437 bool info_dirty; 448 *
449 * set_manager_info
450 * get_manager_info
451 * apply
452 *
453 * The rest of the functions may block and cannot be called from
454 * interrupt context
455 */
438 456
439 int (*set_device)(struct omap_overlay_manager *mgr, 457 int (*set_device)(struct omap_overlay_manager *mgr,
440 struct omap_dss_device *dssdev); 458 struct omap_dss_device *dssdev);
@@ -448,9 +466,6 @@ struct omap_overlay_manager {
448 int (*apply)(struct omap_overlay_manager *mgr); 466 int (*apply)(struct omap_overlay_manager *mgr);
449 int (*wait_for_go)(struct omap_overlay_manager *mgr); 467 int (*wait_for_go)(struct omap_overlay_manager *mgr);
450 int (*wait_for_vsync)(struct omap_overlay_manager *mgr); 468 int (*wait_for_vsync)(struct omap_overlay_manager *mgr);
451
452 int (*enable)(struct omap_overlay_manager *mgr);
453 int (*disable)(struct omap_overlay_manager *mgr);
454}; 469};
455 470
456struct omap_dss_device { 471struct omap_dss_device {
@@ -662,12 +677,7 @@ void omapdss_dsi_vc_enable_hs(struct omap_dss_device *dssdev, int channel,
662 bool enable); 677 bool enable);
663int omapdss_dsi_enable_te(struct omap_dss_device *dssdev, bool enable); 678int omapdss_dsi_enable_te(struct omap_dss_device *dssdev, bool enable);
664 679
665int omap_dsi_prepare_update(struct omap_dss_device *dssdev, 680int omap_dsi_update(struct omap_dss_device *dssdev, int channel,
666 u16 *x, u16 *y, u16 *w, u16 *h,
667 bool enlarge_update_area);
668int omap_dsi_update(struct omap_dss_device *dssdev,
669 int channel,
670 u16 x, u16 y, u16 w, u16 h,
671 void (*callback)(int, void *), void *data); 681 void (*callback)(int, void *), void *data);
672int omap_dsi_request_vc(struct omap_dss_device *dssdev, int *channel); 682int omap_dsi_request_vc(struct omap_dss_device *dssdev, int *channel);
673int omap_dsi_set_vc_id(struct omap_dss_device *dssdev, int channel, int vc_id); 683int omap_dsi_set_vc_id(struct omap_dss_device *dssdev, int channel, int vc_id);