diff options
author | Tomi Valkeinen <tomi.valkeinen@nokia.com> | 2010-01-08 10:06:04 -0500 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@nokia.com> | 2010-02-24 07:31:27 -0500 |
commit | 3f71cbe736e7e9909559fcc4463f43e4b4b348a8 (patch) | |
tree | 5dfcab336179739a06c82c72fc37272af39b795a | |
parent | 87424e1bffeaea7bf9e2b8afc16fe584a8641e5e (diff) |
OMAP: DSS2: move wait_vsync()
Move wait_vsync() from omap_dss_device to overlay manager.
This is part of a larger patch-set, which moves the control from omapdss
driver to the display driver.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
-rw-r--r-- | arch/arm/plat-omap/include/plat/display.h | 2 | ||||
-rw-r--r-- | drivers/video/omap2/dss/display.c | 14 | ||||
-rw-r--r-- | drivers/video/omap2/dss/manager.c | 14 | ||||
-rw-r--r-- | drivers/video/omap2/omapfb/omapfb-ioctl.c | 2 |
4 files changed, 16 insertions, 16 deletions
diff --git a/arch/arm/plat-omap/include/plat/display.h b/arch/arm/plat-omap/include/plat/display.h index 9291aa133e71..059b35cfd125 100644 --- a/arch/arm/plat-omap/include/plat/display.h +++ b/arch/arm/plat-omap/include/plat/display.h | |||
@@ -370,6 +370,7 @@ struct omap_overlay_manager { | |||
370 | 370 | ||
371 | int (*apply)(struct omap_overlay_manager *mgr); | 371 | int (*apply)(struct omap_overlay_manager *mgr); |
372 | int (*wait_for_go)(struct omap_overlay_manager *mgr); | 372 | int (*wait_for_go)(struct omap_overlay_manager *mgr); |
373 | int (*wait_for_vsync)(struct omap_overlay_manager *mgr); | ||
373 | }; | 374 | }; |
374 | 375 | ||
375 | struct omap_dss_device { | 376 | struct omap_dss_device { |
@@ -479,7 +480,6 @@ struct omap_dss_device { | |||
479 | int (*update)(struct omap_dss_device *dssdev, | 480 | int (*update)(struct omap_dss_device *dssdev, |
480 | u16 x, u16 y, u16 w, u16 h); | 481 | u16 x, u16 y, u16 w, u16 h); |
481 | int (*sync)(struct omap_dss_device *dssdev); | 482 | int (*sync)(struct omap_dss_device *dssdev); |
482 | int (*wait_vsync)(struct omap_dss_device *dssdev); | ||
483 | 483 | ||
484 | int (*set_update_mode)(struct omap_dss_device *dssdev, | 484 | int (*set_update_mode)(struct omap_dss_device *dssdev, |
485 | enum omap_dss_update_mode); | 485 | enum omap_dss_update_mode); |
diff --git a/drivers/video/omap2/dss/display.c b/drivers/video/omap2/dss/display.c index 263d2fd93bac..80b67d1c9d03 100644 --- a/drivers/video/omap2/dss/display.c +++ b/drivers/video/omap2/dss/display.c | |||
@@ -323,19 +323,6 @@ void default_get_overlay_fifo_thresholds(enum omap_plane plane, | |||
323 | *fifo_low = fifo_size - burst_size_bytes; | 323 | *fifo_low = fifo_size - burst_size_bytes; |
324 | } | 324 | } |
325 | 325 | ||
326 | static int default_wait_vsync(struct omap_dss_device *dssdev) | ||
327 | { | ||
328 | unsigned long timeout = msecs_to_jiffies(500); | ||
329 | u32 irq; | ||
330 | |||
331 | if (dssdev->type == OMAP_DISPLAY_TYPE_VENC) | ||
332 | irq = DISPC_IRQ_EVSYNC_ODD; | ||
333 | else | ||
334 | irq = DISPC_IRQ_VSYNC; | ||
335 | |||
336 | return omap_dispc_wait_for_irq_interruptible_timeout(irq, timeout); | ||
337 | } | ||
338 | |||
339 | static int default_get_recommended_bpp(struct omap_dss_device *dssdev) | 326 | static int default_get_recommended_bpp(struct omap_dss_device *dssdev) |
340 | { | 327 | { |
341 | if (dssdev->panel.recommended_bpp) | 328 | if (dssdev->panel.recommended_bpp) |
@@ -427,7 +414,6 @@ void dss_init_device(struct platform_device *pdev, | |||
427 | 414 | ||
428 | dssdev->get_resolution = default_get_resolution; | 415 | dssdev->get_resolution = default_get_resolution; |
429 | dssdev->get_recommended_bpp = default_get_recommended_bpp; | 416 | dssdev->get_recommended_bpp = default_get_recommended_bpp; |
430 | dssdev->wait_vsync = default_wait_vsync; | ||
431 | 417 | ||
432 | switch (dssdev->type) { | 418 | switch (dssdev->type) { |
433 | case OMAP_DISPLAY_TYPE_DPI: | 419 | case OMAP_DISPLAY_TYPE_DPI: |
diff --git a/drivers/video/omap2/dss/manager.c b/drivers/video/omap2/dss/manager.c index 27d9c465c851..486cd4aec652 100644 --- a/drivers/video/omap2/dss/manager.c +++ b/drivers/video/omap2/dss/manager.c | |||
@@ -501,6 +501,19 @@ static int omap_dss_unset_device(struct omap_overlay_manager *mgr) | |||
501 | return 0; | 501 | return 0; |
502 | } | 502 | } |
503 | 503 | ||
504 | static int dss_mgr_wait_for_vsync(struct omap_overlay_manager *mgr) | ||
505 | { | ||
506 | unsigned long timeout = msecs_to_jiffies(500); | ||
507 | u32 irq; | ||
508 | |||
509 | if (mgr->device->type == OMAP_DISPLAY_TYPE_VENC) | ||
510 | irq = DISPC_IRQ_EVSYNC_ODD; | ||
511 | else | ||
512 | irq = DISPC_IRQ_VSYNC; | ||
513 | |||
514 | return omap_dispc_wait_for_irq_interruptible_timeout(irq, timeout); | ||
515 | } | ||
516 | |||
504 | static int dss_mgr_wait_for_go(struct omap_overlay_manager *mgr) | 517 | static int dss_mgr_wait_for_go(struct omap_overlay_manager *mgr) |
505 | { | 518 | { |
506 | unsigned long timeout = msecs_to_jiffies(500); | 519 | unsigned long timeout = msecs_to_jiffies(500); |
@@ -1394,6 +1407,7 @@ int dss_init_overlay_managers(struct platform_device *pdev) | |||
1394 | mgr->set_manager_info = &omap_dss_mgr_set_info; | 1407 | mgr->set_manager_info = &omap_dss_mgr_set_info; |
1395 | mgr->get_manager_info = &omap_dss_mgr_get_info; | 1408 | mgr->get_manager_info = &omap_dss_mgr_get_info; |
1396 | mgr->wait_for_go = &dss_mgr_wait_for_go; | 1409 | mgr->wait_for_go = &dss_mgr_wait_for_go; |
1410 | mgr->wait_for_vsync = &dss_mgr_wait_for_vsync; | ||
1397 | 1411 | ||
1398 | mgr->caps = OMAP_DSS_OVL_MGR_CAP_DISPC; | 1412 | mgr->caps = OMAP_DSS_OVL_MGR_CAP_DISPC; |
1399 | 1413 | ||
diff --git a/drivers/video/omap2/omapfb/omapfb-ioctl.c b/drivers/video/omap2/omapfb/omapfb-ioctl.c index 6e0186edc7da..36afab30921e 100644 --- a/drivers/video/omap2/omapfb/omapfb-ioctl.c +++ b/drivers/video/omap2/omapfb/omapfb-ioctl.c | |||
@@ -649,7 +649,7 @@ int omapfb_ioctl(struct fb_info *fbi, unsigned int cmd, unsigned long arg) | |||
649 | break; | 649 | break; |
650 | } | 650 | } |
651 | 651 | ||
652 | r = display->wait_vsync(display); | 652 | r = display->manager->wait_for_vsync(display->manager); |
653 | break; | 653 | break; |
654 | 654 | ||
655 | case OMAPFB_WAITFORGO: | 655 | case OMAPFB_WAITFORGO: |