diff options
author | Hashcode <hashcode0f@gmail.com> | 2015-02-06 12:35:04 -0800 |
---|---|---|
committer | Hashcode <hashcode0f@gmail.com> | 2015-02-06 12:35:04 -0800 |
commit | 82f941ef3496f21193e9fe7c21da1f34ed589c01 (patch) | |
tree | e47dd8f3fb33f8b1d82260c32d5266f0c5d64eab | |
parent | 43965ea80b0227c72b15a40e78682269a4ff186c (diff) | |
download | hardware_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
-rw-r--r-- | hwc/hwc.c | 9 | ||||
-rw-r--r-- | hwc/rgz_2d.c | 6 | ||||
-rw-r--r-- | hwc/rgz_2d.h | 4 |
3 files changed, 18 insertions, 1 deletions
@@ -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 |