summaryrefslogtreecommitdiffstats
path: root/hwc
diff options
context:
space:
mode:
authorHashcode <hashcode0f@gmail.com>2015-02-06 12:35:04 -0800
committerHashcode <hashcode0f@gmail.com>2015-02-06 12:35:04 -0800
commit82f941ef3496f21193e9fe7c21da1f34ed589c01 (patch)
treee47dd8f3fb33f8b1d82260c32d5266f0c5d64eab /hwc
parent43965ea80b0227c72b15a40e78682269a4ff186c (diff)
downloadhardware_ti_omap4-82f941ef3496f21193e9fe7c21da1f34ed589c01.zip
hardware_ti_omap4-82f941ef3496f21193e9fe7c21da1f34ed589c01.tar.gz
hardware_ti_omap4-82f941ef3496f21193e9fe7c21da1f34ed589c01.tar.bz2
hwc: add OMAP_ENHANCEMENT_HWC_EXTENDED_API for framework support
Most devices will leave this undefined until k3.4 + framework changes
Diffstat (limited to 'hwc')
-rw-r--r--hwc/hwc.c9
-rw-r--r--hwc/rgz_2d.c6
-rw-r--r--hwc/rgz_2d.h4
3 files changed, 18 insertions, 1 deletions
diff --git a/hwc/hwc.c b/hwc/hwc.c
index 990a2ce..bb2770c 100644
--- a/hwc/hwc.c
+++ b/hwc/hwc.c
@@ -95,7 +95,9 @@ static bool debug = false;
static bool debugpost2 = false;
static bool debugblt = false;
static rgz_t grgz;
+#ifdef OMAP_ENHANCEMENT_HWC_EXTENDED_API
static rgz_ext_layer_list_t grgz_ext_layer_list;
+#endif
static struct bvsurfgeom gscrngeom;
static void showfps(void)
@@ -1447,6 +1449,7 @@ static bool blit_layers(omap_hwc_device_t *hwc_dev, hwc_display_contents_1_t *li
break;
}
+#ifdef OMAP_ENHANCEMENT_HWC_EXTENDED_API
/*
* Request the layer identities to SurfaceFlinger, first figure out if the
* operation is supported
@@ -1458,8 +1461,9 @@ static bool blit_layers(omap_hwc_device_t *hwc_dev, hwc_display_contents_1_t *li
/* Check if we have enough space in the extended layer list */
if ((sizeof(hwc_layer_extended_t) * list->numHwLayers) > sizeof(grgz_ext_layer_list))
goto err_out;
-
+#endif
uint32_t i;
+#ifdef OMAP_ENHANCEMENT_HWC_EXTENDED_API
for (i = 0; i < list->numHwLayers; i++) {
hwc_layer_extended_t *ext_layer = &grgz_ext_layer_list.layers[i];
ext_layer->idx = i;
@@ -1467,6 +1471,7 @@ static bool blit_layers(omap_hwc_device_t *hwc_dev, hwc_display_contents_1_t *li
(void **) &ext_layer, sizeof(hwc_layer_extended_t)) != 0)
goto err_out;
}
+#endif
rgz_in_params_t in = {
.op = rgz_in_op,
@@ -1474,7 +1479,9 @@ static bool blit_layers(omap_hwc_device_t *hwc_dev, hwc_display_contents_1_t *li
.hwc = {
.dstgeom = &gscrngeom,
.layers = list->hwLayers,
+#ifdef OMAP_ENHANCEMENT_HWC_EXTENDED_API
.extlayers = grgz_ext_layer_list.layers,
+#endif
.layerno = list->numHwLayers
}
}
diff --git a/hwc/rgz_2d.c b/hwc/rgz_2d.c
index ac4be96..ac0c1a0 100644
--- a/hwc/rgz_2d.c
+++ b/hwc/rgz_2d.c
@@ -1186,7 +1186,9 @@ static void rgz_add_background_layer(rgz_fb_state_t *fb_state)
static int rgz_in_hwccheck(rgz_in_params_t *p, rgz_t *rgz)
{
hwc_layer_1_t *layers = p->data.hwc.layers;
+#ifdef OMAP_ENHANCEMENT_HWC_EXTENDED_API
hwc_layer_extended_t *extlayers = p->data.hwc.extlayers;
+#endif
int layerno = p->data.hwc.layerno;
rgz->state &= ~RGZ_STATE_INIT;
@@ -1223,7 +1225,9 @@ static int rgz_in_hwccheck(rgz_in_params_t *p, rgz_t *rgz)
possible_blit < RGZ_INPUT_MAXLAYERS) {
rgz_layer_t *rgz_layer = &cur_fb_state->rgz_layers[possible_blit+1];
rgz_layer->hwc_layer = layers[l];
+#ifdef OMAP_ENHANCEMENT_HWC_EXTENDED_API
rgz_layer->identity = extlayers[l].identity;
+#endif
rgz_layer->buffidx = memidx++;
possible_blit++;
}
@@ -1239,7 +1243,9 @@ static int rgz_in_hwccheck(rgz_in_params_t *p, rgz_t *rgz)
*/
rgz_layer_t *rgz_layer = &cur_fb_state->rgz_layers[possible_blit+1];
rgz_layer->hwc_layer = layers[l];
+#ifdef OMAP_ENHANCEMENT_HWC_EXTENDED_API
rgz_layer->identity = extlayers[l].identity;
+#endif
rgz_layer->buffidx = RGZ_CLEARHINT_BUFFIDX;
/* Set dummy handle to maintain dirty region state */
rgz_layer->hwc_layer.handle = (void*) 0x1;
diff --git a/hwc/rgz_2d.h b/hwc/rgz_2d.h
index de41b82..f4f8708 100644
--- a/hwc/rgz_2d.h
+++ b/hwc/rgz_2d.h
@@ -55,7 +55,9 @@ struct rgz_in_hwc {
int flags;
int layerno;
hwc_layer_1_t *layers;
+#ifdef OMAP_ENHANCEMENT_HWC_EXTENDED_API
hwc_layer_extended_t *extlayers;
+#endif
struct bvsurfgeom *dstgeom;
};
@@ -66,9 +68,11 @@ typedef struct rgz_in_params {
} data;
} rgz_in_params_t;
+#ifdef OMAP_ENHANCEMENT_HWC_EXTENDED_API
typedef struct rgz_ext_layer_list {
hwc_layer_extended_t layers[RGZ_INPUT_MAXLAYERS];
} rgz_ext_layer_list_t;
+#endif
/*
* Validate whether the HWC layers can be rendered