summaryrefslogtreecommitdiff
path: root/hwcomposer/display.c
diff options
context:
space:
mode:
authorGowtham Tammana <g-tammana@ti.com>2017-12-20 13:59:35 -0600
committerGowtham Tammana <g-tammana@ti.com>2017-12-20 15:00:04 -0600
commit6f7cbd247b61f608c1b99a9e47eba2339f5d2775 (patch)
tree38babe6c9b110c382292ff58f0df7153285828fb /hwcomposer/display.c
parent663c365b08c091fcee7a8865cf02b9b3b80e3aab (diff)
downloaddra7xx-6f7cbd247b61f608c1b99a9e47eba2339f5d2775.tar.gz
hwc: Enable single layer NV12 DSS composition
In the case of single NV12 layer, assign it to overlay plane and setup primary plane with a dummy buffer. Change-Id: Ib951621f5a7ed04616e32f8193d91183548a3dbc Signed-off-by: Gowtham Tammana <g-tammana@ti.com>
Diffstat (limited to 'hwcomposer/display.c')
-rw-r--r--hwcomposer/display.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/hwcomposer/display.c b/hwcomposer/display.c
index 7641098..b58d3f9 100644
--- a/hwcomposer/display.c
+++ b/hwcomposer/display.c
@@ -320,6 +320,9 @@ bool can_dss_render_all_layers(omap_hwc_device_t *hwc_dev, int disp)
if (disp)
return false;
+ if (!display->disp_link.is_crtc_set)
+ return false;
+
if (layer_stats->bgr)
return false;
@@ -1204,6 +1207,20 @@ static int display_configure_pipes(display_t *display)
}
}
}
+ if (comp->used_ovls == 1 && display->layer_stats.nv12) {
+ plane_info = &comp->plane_info[comp->ovl_indices[1]];
+ plane_info->crtc_w = kdisp->dummy_fb.width;
+ plane_info->crtc_h = kdisp->dummy_fb.height;
+ plane_info->src_w = kdisp->dummy_fb.width;
+ plane_info->src_h = kdisp->dummy_fb.height;
+ plane_info->zorder = 0;
+ err = set_plane_properties(kdisp->atomic_req,
+ plane_info, &kdisp->dummy_fb);
+ if (err) {
+ ALOGE("Failed to configure pipe with dummy fb (%s)",
+ strerror(err));
+ }
+ }
return err;
}