diff options
author | Gowtham Tammana | 2017-03-02 16:24:53 -0600 |
---|---|---|
committer | Gowtham Tammana | 2017-03-03 16:55:11 -0600 |
commit | aca5e15f639d596a22d0419cbc399c3512bf0bf4 (patch) | |
tree | 35220efabd8291eebd35c6a68c6bd820acadd498 | |
parent | 5e6d0998164eab9afa0a9c93441bbd504749be2a (diff) | |
download | hardware-ti-dra7xx-aca5e15f639d596a22d0419cbc399c3512bf0bf4.tar.gz hardware-ti-dra7xx-aca5e15f639d596a22d0419cbc399c3512bf0bf4.tar.xz hardware-ti-dra7xx-aca5e15f639d596a22d0419cbc399c3512bf0bf4.zip |
hwc: Reset pipe info on each frame
DSS pipe information was being reset only on DSS composition. Reset
them irrespective of DSS usage and release any active drm fb on
previously active planes.
Change-Id: Ic7dad28cbe992eac885fc8ec87aec485743c18fd
Signed-off-by: Gowtham Tammana <g-tammana@ti.com>
-rw-r--r-- | hwcomposer/display.c | 2 | ||||
-rw-r--r-- | hwcomposer/hwc.c | 7 |
2 files changed, 5 insertions, 4 deletions
diff --git a/hwcomposer/display.c b/hwcomposer/display.c index 918a91b..de1aa25 100644 --- a/hwcomposer/display.c +++ b/hwcomposer/display.c | |||
@@ -1249,7 +1249,7 @@ int update_display(omap_hwc_device_t *ctx, int disp, | |||
1249 | 1249 | ||
1250 | drmModeAtomicFree(kdisp->atomic_req); | 1250 | drmModeAtomicFree(kdisp->atomic_req); |
1251 | 1251 | ||
1252 | for (i = 0; i < comp->used_ovls; i++) { | 1252 | for (i = 0; i < DSS_AVAILABLE_PIPES; i++) { |
1253 | kdisp->fb_bufs[i].next = comp->plane_info[i].fb_info; | 1253 | kdisp->fb_bufs[i].next = comp->plane_info[i].fb_info; |
1254 | kdisp->fb_bufs[i].updated = true; | 1254 | kdisp->fb_bufs[i].updated = true; |
1255 | } | 1255 | } |
diff --git a/hwcomposer/hwc.c b/hwcomposer/hwc.c index ef78293..8c064e4 100644 --- a/hwcomposer/hwc.c +++ b/hwcomposer/hwc.c | |||
@@ -168,9 +168,6 @@ static void hwc_check_dss_composition(omap_hwc_device_t *hwc_dev, int disp) | |||
168 | if (!property_get_bool("persist.hwc.dss.comp", 1)) | 168 | if (!property_get_bool("persist.hwc.dss.comp", 1)) |
169 | return; | 169 | return; |
170 | 170 | ||
171 | for (i = 0; i < DSS_AVAILABLE_PIPES; i++) | ||
172 | reset_drm_plane(&comp->plane_info[i]); | ||
173 | |||
174 | if (can_dss_render_all_layers(hwc_dev, disp)) { | 171 | if (can_dss_render_all_layers(hwc_dev, disp)) { |
175 | comp->use_dss = true; | 172 | comp->use_dss = true; |
176 | comp->use_sgx = false; | 173 | comp->use_sgx = false; |
@@ -230,6 +227,10 @@ static int hwc_prepare_for_display(omap_hwc_device_t *hwc_dev, int disp) | |||
230 | display_t *display = hwc_dev->displays[disp]; | 227 | display_t *display = hwc_dev->displays[disp]; |
231 | hwc_display_contents_1_t *list = display->contents; | 228 | hwc_display_contents_1_t *list = display->contents; |
232 | composition_t *comp = &display->composition; | 229 | composition_t *comp = &display->composition; |
230 | uint32_t i = 0; | ||
231 | |||
232 | for (i = 0; i < DSS_AVAILABLE_PIPES; i++) | ||
233 | reset_drm_plane(&comp->plane_info[i]); | ||
233 | 234 | ||
234 | comp->num_buffers = 0; | 235 | comp->num_buffers = 0; |
235 | 236 | ||