summaryrefslogtreecommitdiff
path: root/hwcomposer/display.c
diff options
context:
space:
mode:
authorGowtham Tammana <g-tammana@ti.com>2017-02-15 18:21:48 -0600
committerGowtham Tammana <g-tammana@ti.com>2017-02-28 01:10:57 -0600
commit5287ac7934db42a5f8649cb755d7b23ad880348b (patch)
tree300e9d0db004c464b167634d5a926ba9e4f248c8 /hwcomposer/display.c
parentfa8f882ea252f376e18948574294e776787fbedc (diff)
downloaddra7xx-5287ac7934db42a5f8649cb755d7b23ad880348b.tar.gz
hwc: Use handle from blitter to create drm fb
The blitter device manages its own ping pong buffer. In the case of blitter composition, override the framebuffer target handle from SF with blitter handle in creating the drm fb object. Change-Id: If1ea8981fcb4c2ac4193e43223503ca17e2add3d Signed-off-by: Gowtham Tammana <g-tammana@ti.com>
Diffstat (limited to 'hwcomposer/display.c')
-rw-r--r--hwcomposer/display.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/hwcomposer/display.c b/hwcomposer/display.c
index 8d43764..918a91b 100644
--- a/hwcomposer/display.c
+++ b/hwcomposer/display.c
@@ -1070,8 +1070,18 @@ static int display_configure_pipes(display_t *display)
if (comp->plane_info[i].layer) {
drm_fb_info_t fb_info = { 0 };
drm_plane_props_t *plane_info = &comp->plane_info[i];
+ buffer_handle_t handle = plane_info->layer->handle;
+
+ /* if blitter is enabled we use only one pipe and the
+ * buffer handle comes from blitter
+ */
+ if (comp->use_blitter) {
+ handle =
+ hwc_dev->blitter->get_fb_handle(hwc_dev->blitter,
+ display->type - 1);
+ }
- err = display_create_drm_fb(display, plane_info->layer->handle,
+ err = display_create_drm_fb(display, handle,
(void *)plane_info, &fb_info);
if (err) {
ALOGE("Plane %d: Error in creating drm fb: %d (%s)", i,