diff options
Diffstat (limited to 'drivers/video/omap2/dss/manager.c')
-rw-r--r-- | drivers/video/omap2/dss/manager.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/video/omap2/dss/manager.c b/drivers/video/omap2/dss/manager.c index 172d4e697309..bcd37ec86952 100644 --- a/drivers/video/omap2/dss/manager.c +++ b/drivers/video/omap2/dss/manager.c | |||
@@ -515,6 +515,8 @@ static int dss_mgr_wait_for_vsync(struct omap_overlay_manager *mgr) | |||
515 | 515 | ||
516 | if (mgr->device->type == OMAP_DISPLAY_TYPE_VENC) { | 516 | if (mgr->device->type == OMAP_DISPLAY_TYPE_VENC) { |
517 | irq = DISPC_IRQ_EVSYNC_ODD; | 517 | irq = DISPC_IRQ_EVSYNC_ODD; |
518 | } else if (mgr->device->type == OMAP_DISPLAY_TYPE_HDMI) { | ||
519 | irq = DISPC_IRQ_EVSYNC_EVEN; | ||
518 | } else { | 520 | } else { |
519 | if (mgr->id == OMAP_DSS_CHANNEL_LCD) | 521 | if (mgr->id == OMAP_DSS_CHANNEL_LCD) |
520 | irq = DISPC_IRQ_VSYNC; | 522 | irq = DISPC_IRQ_VSYNC; |
@@ -536,7 +538,8 @@ static int dss_mgr_wait_for_go(struct omap_overlay_manager *mgr) | |||
536 | if (!dssdev || dssdev->state != OMAP_DSS_DISPLAY_ACTIVE) | 538 | if (!dssdev || dssdev->state != OMAP_DSS_DISPLAY_ACTIVE) |
537 | return 0; | 539 | return 0; |
538 | 540 | ||
539 | if (dssdev->type == OMAP_DISPLAY_TYPE_VENC) { | 541 | if (dssdev->type == OMAP_DISPLAY_TYPE_VENC |
542 | || dssdev->type == OMAP_DISPLAY_TYPE_HDMI) { | ||
540 | irq = DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_EVSYNC_EVEN; | 543 | irq = DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_EVSYNC_EVEN; |
541 | } else { | 544 | } else { |
542 | if (dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE) { | 545 | if (dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE) { |
@@ -613,7 +616,8 @@ int dss_mgr_wait_for_go_ovl(struct omap_overlay *ovl) | |||
613 | if (!dssdev || dssdev->state != OMAP_DSS_DISPLAY_ACTIVE) | 616 | if (!dssdev || dssdev->state != OMAP_DSS_DISPLAY_ACTIVE) |
614 | return 0; | 617 | return 0; |
615 | 618 | ||
616 | if (dssdev->type == OMAP_DISPLAY_TYPE_VENC) { | 619 | if (dssdev->type == OMAP_DISPLAY_TYPE_VENC |
620 | || dssdev->type == OMAP_DISPLAY_TYPE_HDMI) { | ||
617 | irq = DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_EVSYNC_EVEN; | 621 | irq = DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_EVSYNC_EVEN; |
618 | } else { | 622 | } else { |
619 | if (dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE) { | 623 | if (dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE) { |
@@ -1377,6 +1381,7 @@ static int omap_dss_mgr_apply(struct omap_overlay_manager *mgr) | |||
1377 | case OMAP_DISPLAY_TYPE_DBI: | 1381 | case OMAP_DISPLAY_TYPE_DBI: |
1378 | case OMAP_DISPLAY_TYPE_SDI: | 1382 | case OMAP_DISPLAY_TYPE_SDI: |
1379 | case OMAP_DISPLAY_TYPE_VENC: | 1383 | case OMAP_DISPLAY_TYPE_VENC: |
1384 | case OMAP_DISPLAY_TYPE_HDMI: | ||
1380 | default_get_overlay_fifo_thresholds(ovl->id, size, | 1385 | default_get_overlay_fifo_thresholds(ovl->id, size, |
1381 | &oc->burst_size, &oc->fifo_low, | 1386 | &oc->burst_size, &oc->fifo_low, |
1382 | &oc->fifo_high); | 1387 | &oc->fifo_high); |
@@ -1394,7 +1399,7 @@ static int omap_dss_mgr_apply(struct omap_overlay_manager *mgr) | |||
1394 | } | 1399 | } |
1395 | 1400 | ||
1396 | r = 0; | 1401 | r = 0; |
1397 | dss_clk_enable(DSS_CLK_ICK | DSS_CLK_FCK1); | 1402 | dss_clk_enable(DSS_CLK_ICK | DSS_CLK_FCK); |
1398 | if (!dss_cache.irq_enabled) { | 1403 | if (!dss_cache.irq_enabled) { |
1399 | u32 mask; | 1404 | u32 mask; |
1400 | 1405 | ||
@@ -1407,7 +1412,7 @@ static int omap_dss_mgr_apply(struct omap_overlay_manager *mgr) | |||
1407 | dss_cache.irq_enabled = true; | 1412 | dss_cache.irq_enabled = true; |
1408 | } | 1413 | } |
1409 | configure_dispc(); | 1414 | configure_dispc(); |
1410 | dss_clk_disable(DSS_CLK_ICK | DSS_CLK_FCK1); | 1415 | dss_clk_disable(DSS_CLK_ICK | DSS_CLK_FCK); |
1411 | 1416 | ||
1412 | spin_unlock_irqrestore(&dss_cache.lock, flags); | 1417 | spin_unlock_irqrestore(&dss_cache.lock, flags); |
1413 | 1418 | ||