OMAP4: DSS2: Add display type HDMI to DSS2
authorMythri P K <mythripk@ti.com>
Tue, 8 Mar 2011 11:45:54 +0000 (17:15 +0530)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Wed, 16 Mar 2011 06:15:22 +0000 (11:45 +0530)
Adding display type HDMI in dss_features, overlay and the manager so that
HDMI type of display will be recognized.

Signed-off-by: Mythri P K <mythripk@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
arch/arm/plat-omap/include/plat/display.h
drivers/video/omap2/dss/display.c
drivers/video/omap2/dss/dss_features.c
drivers/video/omap2/dss/manager.c
drivers/video/omap2/dss/overlay.c

index e81ca66dfbb46920b86454c94983478a6ce5fd8f..5e04ddc18fa8c512fbafb205e6818d1b064e2335 100644 (file)
@@ -58,6 +58,7 @@ enum omap_display_type {
        OMAP_DISPLAY_TYPE_SDI           = 1 << 2,
        OMAP_DISPLAY_TYPE_DSI           = 1 << 3,
        OMAP_DISPLAY_TYPE_VENC          = 1 << 4,
+       OMAP_DISPLAY_TYPE_HDMI          = 1 << 5,
 };
 
 enum omap_plane {
index 7d96b724c99260fc128e1260868d38e60bbf471a..c40bcbd2e14039a1e3c574897ae5ca723accc52e 100644 (file)
@@ -342,6 +342,7 @@ int omapdss_default_get_recommended_bpp(struct omap_dss_device *dssdev)
                        return 16;
        case OMAP_DISPLAY_TYPE_VENC:
        case OMAP_DISPLAY_TYPE_SDI:
+       case OMAP_DISPLAY_TYPE_HDMI:
                return 24;
        default:
                BUG();
@@ -368,6 +369,7 @@ bool dss_use_replication(struct omap_dss_device *dssdev,
        case OMAP_DISPLAY_TYPE_DPI:
                bpp = dssdev->phy.dpi.data_lines;
                break;
+       case OMAP_DISPLAY_TYPE_HDMI:
        case OMAP_DISPLAY_TYPE_VENC:
        case OMAP_DISPLAY_TYPE_SDI:
                bpp = 24;
index 06b18f73449b0923b509f83392dca65244fa909c..aa1622241d0d728612c57bda460951d251cf590d 100644 (file)
@@ -130,7 +130,7 @@ static const enum omap_display_type omap4_dss_supported_displays[] = {
        OMAP_DISPLAY_TYPE_DBI | OMAP_DISPLAY_TYPE_DSI,
 
        /* OMAP_DSS_CHANNEL_DIGIT */
-       OMAP_DISPLAY_TYPE_VENC,
+       OMAP_DISPLAY_TYPE_VENC | OMAP_DISPLAY_TYPE_HDMI,
 
        /* OMAP_DSS_CHANNEL_LCD2 */
        OMAP_DISPLAY_TYPE_DPI | OMAP_DISPLAY_TYPE_DBI |
index 1f53bf20b6cb249ebeb1e24f9438c7456e9101ee..bcd37ec86952fae81d0327366833503717de520e 100644 (file)
@@ -515,6 +515,8 @@ static int dss_mgr_wait_for_vsync(struct omap_overlay_manager *mgr)
 
        if (mgr->device->type == OMAP_DISPLAY_TYPE_VENC) {
                irq = DISPC_IRQ_EVSYNC_ODD;
+       } else if (mgr->device->type == OMAP_DISPLAY_TYPE_HDMI) {
+               irq = DISPC_IRQ_EVSYNC_EVEN;
        } else {
                if (mgr->id == OMAP_DSS_CHANNEL_LCD)
                        irq = DISPC_IRQ_VSYNC;
@@ -536,7 +538,8 @@ static int dss_mgr_wait_for_go(struct omap_overlay_manager *mgr)
        if (!dssdev || dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
                return 0;
 
-       if (dssdev->type == OMAP_DISPLAY_TYPE_VENC) {
+       if (dssdev->type == OMAP_DISPLAY_TYPE_VENC
+                       || dssdev->type == OMAP_DISPLAY_TYPE_HDMI) {
                irq = DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_EVSYNC_EVEN;
        } else {
                if (dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE) {
@@ -613,7 +616,8 @@ int dss_mgr_wait_for_go_ovl(struct omap_overlay *ovl)
        if (!dssdev || dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
                return 0;
 
-       if (dssdev->type == OMAP_DISPLAY_TYPE_VENC) {
+       if (dssdev->type == OMAP_DISPLAY_TYPE_VENC
+                       || dssdev->type == OMAP_DISPLAY_TYPE_HDMI) {
                irq = DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_EVSYNC_EVEN;
        } else {
                if (dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE) {
@@ -1377,6 +1381,7 @@ static int omap_dss_mgr_apply(struct omap_overlay_manager *mgr)
                case OMAP_DISPLAY_TYPE_DBI:
                case OMAP_DISPLAY_TYPE_SDI:
                case OMAP_DISPLAY_TYPE_VENC:
+               case OMAP_DISPLAY_TYPE_HDMI:
                        default_get_overlay_fifo_thresholds(ovl->id, size,
                                        &oc->burst_size, &oc->fifo_low,
                                        &oc->fifo_high);
index 996e9a4f6771e9109d9320cef082116146abb5bb..f1aca6d0401117c9858a4300b5dfe0748a7863e4 100644 (file)
@@ -679,7 +679,8 @@ void dss_recheck_connections(struct omap_dss_device *dssdev, bool force)
                        lcd2_mgr->set_device(lcd2_mgr, dssdev);
                        mgr = lcd2_mgr;
                }
-       } else if (dssdev->type != OMAP_DISPLAY_TYPE_VENC) {
+       } else if (dssdev->type != OMAP_DISPLAY_TYPE_VENC
+                       && dssdev->type != OMAP_DISPLAY_TYPE_HDMI) {
                if (!lcd_mgr->device || force) {
                        if (lcd_mgr->device)
                                lcd_mgr->unset_device(lcd_mgr);
@@ -688,7 +689,8 @@ void dss_recheck_connections(struct omap_dss_device *dssdev, bool force)
                }
        }
 
-       if (dssdev->type == OMAP_DISPLAY_TYPE_VENC) {
+       if (dssdev->type == OMAP_DISPLAY_TYPE_VENC
+                       || dssdev->type == OMAP_DISPLAY_TYPE_HDMI) {
                if (!tv_mgr->device || force) {
                        if (tv_mgr->device)
                                tv_mgr->unset_device(tv_mgr);
This page took 0.029341 seconds and 5 git commands to generate.