diff options
author | Florian Tobias Schandinat <FlorianSchandinat@gmx.de> | 2012-01-08 10:30:34 -0500 |
---|---|---|
committer | Florian Tobias Schandinat <FlorianSchandinat@gmx.de> | 2012-01-08 10:30:34 -0500 |
commit | 193984f43decedd2604547022e3a26249dc18b3e (patch) | |
tree | 5a2637a0fd775e4430fc537f8107f499eea470ea /include/video | |
parent | c5627f65d6b860023f8ee985df61c20617dd21b5 (diff) | |
parent | 9a9016832d2601a290db4dce6dd55552bdae5b1a (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.h | 58 |
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 | ||
203 | enum omap_hdmi_flags { | ||
204 | OMAP_HDMI_SDA_SCL_EXTERNAL_PULLUP = 1 << 0, | ||
205 | }; | ||
206 | |||
203 | /* RFBI */ | 207 | /* RFBI */ |
204 | 208 | ||
205 | struct rfbi_timings { | 209 | struct 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); |
295 | int dsi_vc_send_null(struct omap_dss_device *dssdev, int channel); | 299 | int dsi_vc_send_null(struct omap_dss_device *dssdev, int channel); |
296 | int dsi_vc_send_bta_sync(struct omap_dss_device *dssdev, int channel); | 300 | int dsi_vc_send_bta_sync(struct omap_dss_device *dssdev, int channel); |
297 | int dsi_video_mode_enable(struct omap_dss_device *dssdev, int channel); | 301 | int dsi_enable_video_output(struct omap_dss_device *dssdev, int channel); |
298 | void dsi_video_mode_disable(struct omap_dss_device *dssdev, int channel); | 302 | void dsi_disable_video_output(struct omap_dss_device *dssdev, int channel); |
299 | 303 | ||
300 | /* Board specific data */ | 304 | /* Board specific data */ |
301 | struct omap_dss_board_info { | 305 | struct 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 */ |
311 | extern int omap_display_init(struct omap_dss_board_info *board_data); | 315 | extern int omap_display_init(struct omap_dss_board_info *board_data); |
316 | /* HDMI mux init*/ | ||
317 | extern int omap_hdmi_init(enum omap_hdmi_flags flags); | ||
312 | 318 | ||
313 | struct omap_display_platform_data { | 319 | struct 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 | ||
354 | struct omap_overlay_info { | 360 | struct 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 | ||
419 | struct omap_overlay_manager { | 433 | struct 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 | ||
456 | struct omap_dss_device { | 471 | struct 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); |
663 | int omapdss_dsi_enable_te(struct omap_dss_device *dssdev, bool enable); | 678 | int omapdss_dsi_enable_te(struct omap_dss_device *dssdev, bool enable); |
664 | 679 | ||
665 | int omap_dsi_prepare_update(struct omap_dss_device *dssdev, | 680 | int omap_dsi_update(struct omap_dss_device *dssdev, int channel, |
666 | u16 *x, u16 *y, u16 *w, u16 *h, | ||
667 | bool enlarge_update_area); | ||
668 | int 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); |
672 | int omap_dsi_request_vc(struct omap_dss_device *dssdev, int *channel); | 682 | int omap_dsi_request_vc(struct omap_dss_device *dssdev, int *channel); |
673 | int omap_dsi_set_vc_id(struct omap_dss_device *dssdev, int channel, int vc_id); | 683 | int omap_dsi_set_vc_id(struct omap_dss_device *dssdev, int channel, int vc_id); |