OMAPDSS: FEAT: Add FIFO_MERGE feature
authorTomi Valkeinen <tomi.valkeinen@ti.com>
Fri, 13 Jan 2012 11:24:04 +0000 (13:24 +0200)
committerTomi Valkeinen <tomi.valkeinen@ti.com>
Wed, 25 Jan 2012 11:46:17 +0000 (13:46 +0200)
Add feature flag for fifo merge. OMAP2 doesn't contain fifo merge, later
OMAPs do.

dispc_enable_fifomerge() checks for the flag when called, and gives a
WARN if fifo merge is being enabled when it is not supported.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
drivers/video/omap2/dss/dispc.c
drivers/video/omap2/dss/dss_features.c
drivers/video/omap2/dss/dss_features.h

index a5ec7f37c1857f99fdd411e38e0384f05c3e1936..d711518f9f18ba8069e028912361715b5a26f946 100644 (file)
@@ -1054,6 +1054,11 @@ void dispc_ovl_set_fifo_threshold(enum omap_plane plane, u32 low, u32 high)
 
 void dispc_enable_fifomerge(bool enable)
 {
+       if (!dss_has_feature(FEAT_FIFO_MERGE)) {
+               WARN_ON(enable);
+               return;
+       }
+
        DSSDBG("FIFO merge %s\n", enable ? "enabled" : "disabled");
        REG_FLD_MOD(DISPC_CONFIG, enable ? 1 : 0, 14, 14);
 }
index afcb59301c3727d20149d1b112fa8596cbf3127f..c2456c5bcd356375498f6fa46bdec7cc2eeac2a4 100644 (file)
@@ -370,7 +370,7 @@ static const struct omap_dss_features omap3430_dss_features = {
                FEAT_LINEBUFFERSPLIT | FEAT_RESIZECONF |
                FEAT_DSI_PLL_FREQSEL | FEAT_DSI_REVERSE_TXCLKESC |
                FEAT_VENC_REQUIRES_TV_DAC_CLK | FEAT_CPR | FEAT_PRELOAD |
-               FEAT_FIR_COEF_V | FEAT_ALPHA_FIXED_ZORDER,
+               FEAT_FIR_COEF_V | FEAT_ALPHA_FIXED_ZORDER | FEAT_FIFO_MERGE,
 
        .num_mgrs = 2,
        .num_ovls = 3,
@@ -394,7 +394,7 @@ static const struct omap_dss_features omap3630_dss_features = {
                FEAT_ROWREPEATENABLE | FEAT_LINEBUFFERSPLIT |
                FEAT_RESIZECONF | FEAT_DSI_PLL_PWR_BUG |
                FEAT_DSI_PLL_FREQSEL | FEAT_CPR | FEAT_PRELOAD |
-               FEAT_FIR_COEF_V | FEAT_ALPHA_FIXED_ZORDER,
+               FEAT_FIR_COEF_V | FEAT_ALPHA_FIXED_ZORDER | FEAT_FIFO_MERGE,
 
        .num_mgrs = 2,
        .num_ovls = 3,
@@ -419,7 +419,7 @@ static const struct omap_dss_features omap4430_es1_0_dss_features  = {
                FEAT_DSI_DCS_CMD_CONFIG_VC | FEAT_DSI_VC_OCP_WIDTH |
                FEAT_DSI_GNQ | FEAT_HANDLE_UV_SEPARATE | FEAT_ATTR2 |
                FEAT_CPR | FEAT_PRELOAD | FEAT_FIR_COEF_V |
-               FEAT_ALPHA_FREE_ZORDER,
+               FEAT_ALPHA_FREE_ZORDER | FEAT_FIFO_MERGE,
 
        .num_mgrs = 3,
        .num_ovls = 4,
@@ -443,7 +443,8 @@ static const struct omap_dss_features omap4_dss_features = {
                FEAT_DSI_DCS_CMD_CONFIG_VC | FEAT_DSI_VC_OCP_WIDTH |
                FEAT_DSI_GNQ | FEAT_HDMI_CTS_SWMODE |
                FEAT_HANDLE_UV_SEPARATE | FEAT_ATTR2 | FEAT_CPR |
-               FEAT_PRELOAD | FEAT_FIR_COEF_V | FEAT_ALPHA_FREE_ZORDER,
+               FEAT_PRELOAD | FEAT_FIR_COEF_V | FEAT_ALPHA_FREE_ZORDER |
+               FEAT_FIFO_MERGE,
 
        .num_mgrs = 3,
        .num_ovls = 4,
index cd833bbaac3d60bf2e1b46395220a3a16d2bc907..50caee9192a26a32f4f8eb91f3fbed4867d9e478 100644 (file)
@@ -58,6 +58,7 @@ enum dss_feat_id {
        FEAT_FIR_COEF_V                 = 1 << 25,
        FEAT_ALPHA_FIXED_ZORDER         = 1 << 26,
        FEAT_ALPHA_FREE_ZORDER          = 1 << 27,
+       FEAT_FIFO_MERGE                 = 1 << 28,
 };
 
 /* DSS register field id */